【发布时间】:2018-07-04 19:20:52
【问题描述】:
大家好,我正在尝试进行重定向工作,但我不断收到错误“重定向太多”... 我想重定向所有不以特定字符串开头的 URL,我写了这个和许多其他的但没有工作:
RewriteRule !^(?=string1)(?=string2)(?=string3)/(.*) / [R=301,L]
有什么问题吗? 谢谢
【问题讨论】:
-
你应该把模式写成
RewriteRule ^/(?!string1|string2|string3)(.*) / [R=301,L]。或^/(?!(?:string1|string2|string3)/).* -
感谢 Wiktor 的回复,它几乎可以完美运行,我不得不删除第一个“/”,但它在主页中循环重定向。我将其更改为这样以排除主页:
RewriteRule ^(?!/|string1|string2|string3)(.*) / [R=301,L]但它并没有真正起作用:/ -
试试
RewriteRule ^/(?!string1|string2|string3|$)(.*) / [R=301,L],或者,如果第一个/仍然有问题,RewriteRule ^(?!/string1|/string2|/string3|/$)(.*) / [R=301,L] -
这两种解决方案仍然无法使用 :(
-
好吧,如果
^(?!string1|string2|string3).*(匹配任何不以string1、string2或string3开头的字符串)不起作用,您需要.htaccess 专家帮助。
标签: regex apache .htaccess redirect url-rewriting