REQUEST_URI否定无法重定向

时间:2012-12-28 17:40:02

标签: .htaccess redirect web

我正在尝试使用.htaccess将我的网站设置为重定向到移动版本。 我的主要目的是重定向来自移动设备的所有请求,但直接寻求图像文件的请求除外。图像文件位于根文件夹下的三个文件夹中:/ img / / files / / userfiles /

我正在使用以下内容:

RewriteCond %{HTTP_USER_AGENT} "(android|blackberry|googlebot-mobile|iemobile|iphone|ipad|ipod|opera mobile|palmos|webos)" [NC]
RewriteCond %{REQUEST_URI} !^/files/(.*) [NC]
RewriteCond %{REQUEST_URI} !^/img/(.*) [NC]
RewriteCond %{REQUEST_URI} !^/userfiles/(.*) [NC]
RewriteRule ^(.*)$ http://mobilesite.com/$1 [L,R=302]

对来自移动设备的所有请求进行重定向,而不检查文件夹条件。

如果我尝试访问www.normalsite.com/img/somefile.jpg,它仍然会将我重定向到mobilesite.com,即使上述条件会阻止它这样做。

有人可以帮忙吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

应该是这样的:

# Assume this condition works.
RewriteCond %{HTTP_USER_AGENT} "(android|blackberry|googlebot-mobile|iemobile|iphone|ipad|ipod|opera mobile|palmos|webos)" [NC]

# Modified conditions
RewriteCond %{REQUEST_URI} !/files.* [NC]
RewriteCond %{REQUEST_URI} ![\.(jpg|png|jpeg|gif)].* [NC]
RewriteCond %{REQUEST_URI} !/userfiles.* [NC]
RewriteRule ^(.*)$ http://mobilesite.com/$1 [L,R=302]

如有必要,请在此处添加其他图片扩展程序:

RewriteCond %{REQUEST_URI} ![\.(jpg|png|jpeg|gif)].* [NC]