如何在.htaccess中应用规则

时间:2016-07-24 18:29:12

标签: php regex .htaccess redirect mod-rewrite

我必须创建一个将网站重定向到其他网址的条件,我认为这是非常复杂的条件。

#RewriteRule (pl)?(/page/5/?)$  /polityka-prywatnosci/ [R=301,L]

这是我重定向的基础,但我需要在/page/5/之前排除一些单词,例如单词'car',以便在出现此单词时不执行此重定向。为了使一切清楚: 当我得到:http://some-url/page/5我想将其重定向到http://some-url/polityka-prywatnosci/ 但是当http://some-url/car/page/5我希望留在此网址时。 我试过这样的伎俩:#RewriteRule (pl)?[^(car)](/page/5/?)$ /polityka-prywatnosci/ [R=301,L]但它不起作用。有什么可以克服它?

1 个答案:

答案 0 :(得分:1)

如果允许负面的后视,您可以尝试:

RewriteRule (?<!car|car/pl)(/pl)?(/page/5/?)$  /polityka-prywatnosci/ [R=301,L]

请参阅regex demo

另一种方法可能是连续3次替换:

RewriteRule (/page/5/?)$  /polityka-prywatnosci/ [R=301,L]
RewriteRule (car|car/pl)/polityka-prywatnosci/$  $1/page/5/ [R=301,L]
RewriteRule /pl(/polityka-prywatnosci/)$  $1 [R=301,L]