正则表达式HTAccess无法正常运行

时间:2015-02-13 19:04:32

标签: regex apache .htaccess mod-rewrite

所以我在.htaccess文件中有这个规则。它正确地停止了对#34;文件的重写"目录但没有其他目录。我希望这不会重定向文件,pdf,img和帐户目录。

RewriteCond %{REQUEST_URI} !^/(files|pdf|img|account).*$ [NC]

我也尝试了

RewriteCond %{REQUEST_URI} ^/[^(files|pdf|img|account)].*$ [NC]

这会停止重定向所有请求的目录,也会停止移动站点的重定向,所以我认为这只会破坏我的整个规则集。

我的规则集有点长,以便从我们的主站点重定向到移动设备的m.mainsite。如果看到整套设置有用,请告诉我。

感谢。

2 个答案:

答案 0 :(得分:1)

代替REQUEST_URI try THE_REQUEST变量,而THE_REQUEST变量代表Apache从您的浏览器收到的原始请求,并且在执行一些重写规则后不会被覆盖。

RewriteCond %{THE_REQUEST} !/(files|pdf|img|account) [NC]

答案 1 :(得分:0)

您可以使用这两个条件语句而不仅仅是一个。一个用于目录,然后一个用于目录中的任何内容,例如文件或其他目录。

RewriteCond %{REQUEST_URI} !^/(files|pdf|img|account)/?$ [NC]
RewriteCond %{REQUEST_URI} !^/(files|pdf|img|account)/(.*)$ [NC]
相关问题