在配置重定向时,通常会遇到多个包含某些相同路径字符串的页面。我们已经多次遇到此实例,需要重定向:
https://example.com/x...
但不是:
https://example.com/y/x...
要匹配/ x ...,我们使用PCRE正则表达式:
/x.*
我们一直在努力使排除对象正确匹配;由于我们的regex有点薄弱,我们提前道歉,这是我们的伪代码:
Match all /x... except /y/x...
这就是我们认为的样子:
^\/(?!y\/).x.*
在我们的脑海中写着:
Any query starting with /x..., except starting with /y/x...
预先感谢您,请随时提出更好的格式建议,我们不是堆栈溢出专家。
答案 0 :(得分:1)
您的正则表达式从字符串的开头匹配一个正斜杠,然后使用否定的超前查找来检查后面不是y/
的内容。如果是这样,则匹配任何字符,后跟x和0+字符。例如//x///
不考虑匹配url部分,一种方法可能是使用否定的lookahead (?!
检查右侧的内容是否不包含/y/x
然后匹配任何字符:
^(?!.*/y/x).+
答案 1 :(得分:1)