在htaccess重定向中省略特定文件夹

时间:2014-04-23 01:30:44

标签: regex .htaccess redirect

我试图将一堆支持文件重定向到不同的支持系统,除了其中包含文件夹software_updates的任何文件。以下是我写的规则。

RewriteRule ^/support/.*(?!software_updates).*$ newurl_location [NC,L,R=301]

这排除了/support/software_updates/但不包括/support/product/software_updates我试图在支持后排除在网址中任何位置具有software_updates的任何网址。

3 个答案:

答案 0 :(得分:1)

尝试:

RewriteRule ^/support/(?!.*software_updates) newurl_location [NC,L,R=301]

我没有Apache方便测试它,但它应该可以工作。

答案 1 :(得分:1)

我已对此进行了测试,并认为这是您正在寻找的内容(请注意/.*中的更改

RewriteRule ^support/(?!.*?software_updates) newurl_location [NC,L,R=301]

你快到了。

首先,您不需要初始/

您不希望.*(?!software_updates).*,因为这将匹配software_updates。为什么?点星吃掉了整个字符串,最后,你得到的断言是software_updates不是下一个。当然这是事实。

答案 2 :(得分:0)

这应该可以解决问题。

RewriteRule ^support/(?!.*software_updates).*$ newurl_location [NC,L,R=301]