首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mod_rewrite正则表达式仅在某个字符串不存在时才匹配

在云计算领域,mod_rewrite 是一个 Apache 模块,用于重写 URL 并实现 URL 重定向。mod_rewrite 正则表达式用于匹配和处理 URL,以便根据特定规则重写或重定向 URL。

在这个问答内容中,我们要求在某个字符串不存在时,mod_rewrite 正则表达式才能匹配。为了实现这一点,可以使用负向先行断言(negative lookahead assertion)。负向先行断言的语法是 (?!pattern),其中 pattern 是要匹配的字符串。

例如,假设我们要匹配的字符串是 "example",但是只有在 URL 中不存在 "test" 时才进行匹配,可以使用以下正则表达式:

代码语言:txt
复制
^(?!.*test)example

这个正则表达式的含义是:从字符串的开头开始匹配,如果接下来的任意位置都不包含 "test",则继续匹配 "example"。

在这种情况下,以下 URL 将匹配该正则表达式:

  • example.com
  • example/test

但是以下 URL 将不会匹配:

  • test.example.com
  • example?test=1

总之,在云计算领域,mod_rewrite 正则表达式可以通过使用负向先行断言来实现仅在某个字符串不存在时才匹配的功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

正则表达式匹配不存在特定字符的字符串

作为一名不经常使用正则表达式的程序员,想用最简单的语言来描述否定匹配,不过发现确实不是那么好理解。还是按照自己知道的来描述吧。...=pattern) 非获取匹配,正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如,“Windows(?...pattern) 非获取匹配,正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如“Windows(?!...pattern) 匹配,显而易见它是匹配下一个字符串来判断本次的匹配是否成功。当然这是一个否定匹配。 问题 在文档中匹配出,不包含“hello”的字符串。...当然这不是重点,重点是怎么来写这个正则表达式。 当然,结论是: ^(?!.*hello).*$ 运行效果: ? 将包含有“hello”的字符串全部排除掉了。这样就实现了我们想要的效果。

5.5K20

正则表达式匹配字符串_正则不包含某个字符串

使用正则表达式,你需要指定一些规则来描述那些你希望匹配字符串集合。这些字符串集合可能包含英语句子、 e-mail 地址、TeX 命令,或任何你想要的东东。...由于正则表达式常用于操作字符串的,因此我们从最常见的任务下手:字符匹配。 字符匹配 大多数字母和字符会匹配它们自身。举个例子,正则表达式 FishC 将完全匹配字符串 “FishC”。...如果正则表达式以字节的形式表示,这相当于字符类 [a-zA-Z0-9_];如果正则表达式是一个字符串,\w 会匹配所有 Unicode 数据库(unicodedata 模块提供)中标记为字母的字符。...将匹配包括换行符在内的任何字符。 重复的事情 使用正则表达式能够轻松的匹配不同的字符集合,但 Python 字符串现有的方法却无法实现。...正则表达式默认的重复规则是贪婪的,当你重复匹配一个 RE 匹配引擎会尝试尽可能多的去匹配。直到 RE 不匹配或者到了结尾,匹配引擎就会回退一个字符,然后再继续尝试匹配

1.2K30
  • 如何在Debian 9上使用mod_rewrite为Apache重写URL

    pattern是一个正则表达式匹配URL中所需的字符串,这是查看器在浏览器中键入的内容。 substitution 是实际URL的路径,即Apache服务的文件的路径。...item=$1&season=$2 [QSA] 括号中的第一正则表达式组包含字母数字字符和数字等比如shirt或pants的字符串匹配并保存匹配片段作为变量$1。...括号中的第二正则表达式组完全匹配summer,winter,fall,或spring,并且类似地节省了匹配片段作为$2。...合并后,仅当指定的名称不存在或不是文件计算!-f结果为true。 同样,仅当指定的名称不存在或不是目录,计算!-d结果为true。...在最终线上的RewriteRule只有当为请求不存在的文件或目录生效。RewriteRule本身非常简单,并将每个请求重定向到/网站根目录。

    5K95

    如何在Ubuntu 18.04上使用mod_rewrite for Apache重写URL

    pattern是一个正则表达式匹配URL中所需的字符串,这是查看器在浏览器中键入的内容。 substitution 是实际URL的路径,即文件Apache服务器的路径。...item=$1&season=$2 [QSA] 括号中的第一正则表达式组与包含字母数字字符,例如shirt或pants,和数字等的字符串匹配并将匹配片段保存为$1变量。...括号中的第二正则表达式组与summer,winter,fall,或spring完全匹配并且类似的将匹配保存为$2变量。...-f仅当指定的名称不存在或不是文件计算结果为true。 同样,仅当指定的名称不存在或不是目录,!-d的评估结果为true。...在最终线的RewriteRule只为=有当请求不存在的文件或目录将生效。该RewriteRule本身非常简单,并且可以将每个请求重定向到/网站的根目录。

    4.3K11

    Apache URL重写规则

    它可能与被请求的URL截然不同,因为之前可能被其他RewriteRule或者alias指令修改过。   2、Substitution是当URL与Pattern匹配成功后。用来代替的字符串。...可以对pattern反向引用$N(N=0~9),表示正则表达式中第N个括号中的内容 对最后匹配的RewriteCond反向引用%N(N=0~9),表示最后匹配的RewriteCond第N对括号中的内容...在一条rewriterule指令前面可能会有一条或者多条rewritecond指令,只有当自身模板匹配成功且这些条件也满足(即RewriteRule中的pattern匹配成功),规则条件被应用于当前...匹配任何单字符 [chars] 匹配字符串:chars [^chars] 不匹配字符串:chars text1|text2 可选择的字符串:text1或text2 ?...匹配0到1个字符 * 匹配0到多个字符 + 匹配1到多个字符 ^ 字符串开始标志 $ 字符串结束标志 \n 转义符标志  【注意】:一代Apache要求URL有斜杠而二代Apache却不允许,因此使用

    2.9K40

    apache rewritecond_hfile数据格式中的data字段用于

    图-1:重写规则集中的控制流 可见,URL首先与每个规则的Pattern匹配,如果匹配失败,mod_rewrite将立即终止此规则的处理,继而处理下一个规则。...对规则条件的处理有所不同:URL并不与模式进行匹配,而是首先通过扩展变量、反向引用、查找映射表等步骤建立一个TestString字符串,然后用它来与CondPattern匹配。...在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模板(pattern)匹配成功且这些条件也满足规则被应用于当前URL处理。...2、CondPattern是条件pattern, 即一个应用于当前实例TestString的正则表达式, 即TestString将会被计算然后与CondPattern匹配。...这里的“当前”是指该规则生效的URL的值。 2) Substitution是,当原始URL与Pattern相匹配,用以替代(或替换)的字符串

    4.5K10

    如何在Debian 8上使用mod_rewrite为Apache重写URL

    pattern是一个正则表达式匹配URL中所需的字符串,这是查看器在浏览器中输入的内容。 substitution 是实际URL的路径,即文件Apache服务器的路径。...为了使规则更通用,我们可以使用正则表达式匹配原始地址的各个部分,并在替换模式中使用这些部分。...item=$1&season=$2 [QSA] 括号中的第一个正则表达式匹配包含字母数字字符和数字等的字符串,例如shirt或pants,并将匹配的片段保存为$1变量。...括号中的第二个正则表达式组恰好与summer,winter,fall,或spring匹配,同样将匹配的片段保存为$2。。...-f仅当指定的名称不存在或不是文件评估结果为true。 同样,!-d仅当指定的名称不存在或不是目录,评估结果为true。 最后一行的RewriteRule仅对不存在的文件或目录的请求生效。

    4.4K20

    Apache rewrite Url

    RewriteRule指令 RewriteRule Pattern Substitution [Flags] 在模式(Pattern)和替换(Substitution)中使用正则表达式匹配相应的字符...告诉Apache响应请求不提供页面。其原理就是Apache会发出一个403 HTTP相应,可以保护网站不被未经授权的或者其他盗链访问。 "nocase|NC" 忽略正则表达式中的大小写。...条件之后的重写规则仅在当前URI与pattern匹配并且符合这些条件的时候才会起作用。 RewriteCond也有反向引用,但和RewriteRule中用$N引用不同,它使用%N反向引用。...RewriteCond的条件模式(CondPattern)除了使用perl样式正则表达式,还有额外的规则: 1. 使用‘!’ 字符(惊叹号)来实现匹配的反转 2....5.如果文件不存在重定向到404页面 RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !

    1.8K00

    Apache中 RewriteCond 规则参数介绍

    在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当RewriteCond的条件(CondPattern)匹配成功,RewriteRule的重写规则被应用于当前URL...除了正则表达式的标准用法,还有下列用法: “ 将CondPattern视为纯字符串,与TestString按词典顺序进行比较。 如果TestString小于CondPattern则为真。...– 匹配单词的开始或结束 “^” —————— 匹配字符串的开始 “$” —————— 匹配字符串的结束 “*” —————— 重复零次或更多次 “+” —————— 重复一次或更多次 “?”...在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令, 只有当自身的模板(pattern)匹配成功 且这些条件也满足规则被应用于当前URL处理。...URL与Pattern相匹配,用以替代(或替换)的字符串

    4.5K30

    RewriteCond指令格式

    在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模板(pattern)匹配成功且这些条件也满足规则被应用于当前URL处理。...2、CondPattern是条件pattern, 即一个应用于当前实例TestString的正则表达式, 即TestString将会被计算然后与CondPattern匹配。...这里的“当前”是指该规则生效的URL的值。 2) Substitution是,当原始URL与Pattern相匹配,用以替代(或替换)的字符串。...nocase|NC (忽略大小写 no case) 它使Pattern忽略大小写,即, 在Pattern与当前URL匹配,’A-Z’ 和’a-z’没有区别。...注意: 如果需要混合使用不同的包含URI到文件名翻译器的模块, 就必须使用这个标记。。混合使用mod_alias和mod_rewrite就是个典型的例子。

    2.5K10

    Apache的URL地址重写(RewriteCond与RewriteRule)

    记住一点:任何匹配其实就是一个正则表达式的替换过程。 创建友好的搜索引擎URL地址对于PHP程序员来说非常重要,因此简单学会Apache中URL地址重写将是一项最基本的要求。...在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模 板(pattern)匹配成功且这些条件也满足规则被应用于当前URL处理。   ...,不能在模板中有分组的通配符,也不能做后向引用。   当匹配成功后,Substitution会被用来替换相应的匹配,它除了可以是普通的字符串以外,还可以包括:  1. ...当susbstitution有”-”前缀,表示不进行替换,只做匹配检查。    ...最典型的例子是mod_alias和mod_rewrite的使用。 14. ‘skip|S=num’ (跳过后面的num个规则)   当前规则匹配,强制重写引擎跳过后续的num个规则。

    2.4K10

    Apache 模块 mod rewrite RewriteCond 通过检查HTTP REFERER避免

    Apache – 模块 – mod_rewrite – RewriteCond – 通过检查HTTP_REFERER避免静态图片盗链对性能有严重影响 在避免静态图片盗链,可以用RewriteCond...[mod_rewrite模块 – 标记] RewriteLog, 设置重写引擎日志的文件名 [mod_rewrite模块 – RewriteCond重写条件] 通过检查...HTTP_REFERER避免静态图片盗链对性能有严重影响 [mod_rewrite模块 – RewriteRule重写规则] 匹配任意字符串,可以借助正则表达式的灵活特性 [mod_rewrite...模块 – 常见问题] RewriteRule中的正则表达式需要考虑是否要加上^(匹配字符串开头) RewriteRule中的正则表达式需要考虑是否要对.转义(匹配任意字符还是仅匹配.字符)...RewriteRule中的R标记用于发送重定向 与PHP集成不需要对$_GET额外处理 [mod_alias模块 – 常见问题] RedirectMatch用于简单的重定向

    1.7K20

    如何在Ubuntu 14.04上为Apache设置mod_rewrite

    介绍 在本教程中,我们将激活并学习如何使用Apache2 mod_rewrite模块管理URL重写。这个工具允许我们以更干净的方式重写URL,将人类可读的路径转换为代码友好的查询字符串。...指定指令RewriteRule pattern:与所需字符串匹配正则表达式 substitution:实际URL的路径 flags:可以修改规则的可选参数 Web应用程序通常使用查询字符串,这些字符串使用...匹配重写规则时会忽略它们。但是,有时可能需要查询字符串来在页面之间传递数据。...示例1C:匹配字符集 但是,我们还要指定任何类型的项目,而不仅仅是URL /shirt。因此,我们将执行以下操作: 编写一个匹配所有字母数字字符的正则表达式。...为了快速分析正则表达式模式,这里有一个在线调试器,可以提供正则表达式模式的即时反馈和实时解释。 更多Ubuntu教程请前往腾讯云+社区学习更多知识。

    2.4K00

    由浅入深剖析.htaccess

    1、.htaccess文件使用前提 .htaccess的主要作用就是实现url改写,也就是当浏览器通过url访问到服务器某个文件夹,作为主人,我们可以来接待这个url,具体地怎样接待它,就是此文件的作用...开始接待,否则用户就直接自己去访问所需要的目录了。...关于RewriteCond里 如何调用url的某个部分,我们可以参考这篇文章(Apache的Mod_rewrite学习 (RewriteCond重写规则的条件); 3、现学现用,学习正则表达式。...换行符以外的所有字符 \w匹配字母或数字或下划线或汉字 \s匹配任意的空白符 \d匹配数字 \b匹配单词的开始或结束 ^匹配字符串的开始 $匹配字符串的结束 *重复零次或更多次 *重复零次或更多次 +重复一次或更多次...重复零次或一次 {n}重复n次 {n,}重复n次或更多次 {n,m}重复n到m次 应用替换,前面第一个()中匹配的内容后面就用1引用,第二个()中匹配的就用2应用…… 推荐一个实用的正则在线测试网站

    5K40

    Apache 中RewriteRule 规则参数

    [size=medium] Apache 中RewriteRule 规则参数 Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。...它可能与被请求的URL截然不同,因为其他规则可能在此之前已经发生匹配并对它做了改动。 Substitution是当原始URL与Pattern相匹配,用来替代(或替换)的字符串。...除了纯文本,还可以包含: 对Pattern的反向引用($N) 对最后匹配的RewriteCond的反向引用(%N) 规则条件测试字符串(%{VARNAME})中的服务器变量 映射函数调用(${mapname...‘nocase|NC’(忽略大小写) 它使Pattern忽略大小写,也就是在Pattern与当前URL匹配,‘A-Z’和‘a-z’没有区别。...注意:如果需要混合使用多个将URI转换到文件名的模块,就必须使用这个标记……此处混合使用mod_alias和mod_rewrite就是个典型的例子。

    3.5K20

    MySQL模糊搜索的几种姿势

    本文不过多展开正则表达式相关介绍,仅在Like的基础上,简单介绍其与Like模糊搜索方式的区别。...如前所述,Like匹配原则是要求模式串与整个目标字段匹配返回该条记录;而RegExp中则是当目标字段包含模式串即返回该条记录。...为了限定正则表达式某个模式串开头或者结尾,可以通过添加"^"和"$"标识符来限定,例如仍然搜索以"hello"开头的目标字段,则其SQL语句为: SELECT words FROM tests WHERE...可以完成这一功能的函数包括Instr()、Locate()和Position()等,其功能语法很相近,均是返回子串在字符串中的索引,且索引下标从1开始,当子串不存在是返回0。...:当不存在任何匹配结果,返回0;否则,根据匹配次数的多少和位置先后返回一个匹配度。

    3.2K20

    Apache中 RewriteRule 规则参数介绍

    Apache中 RewriteRule 规则参数介绍 摘要: Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。...Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。...它可能与被请求的URL截然不同,因为其他规则可能在此之前已经发生匹配并对它做了改动。 Substitution是当原始URL与Pattern相匹配,用来替代(或替换)的字符串。...除了纯文本,还可以包含:对Pattern的反向引用(N) 对最后匹配的RewriteCond的反向引用(%N) 规则条件测试字符串(%{VARNAME})中的服务器变量 映射函数调用({mapname:...注意:如果需要混合使用多个将URI转换到文件名的模块,就必须使用这个标记。。此处混合使用mod_alias和mod_rewrite就是个典型的例子。

    11.9K30
    领券