尝试从htaccess规则中排除URL

时间:2012-11-08 04:09:38

标签: apache .htaccess

我试图在我的httpd.conf中为服务器上的所有网站设置全局移动重定向,只需要编辑一次,而不是92次。所有移动网站都会重定向到一个网站,这样就可以了。

但是我想要从重定向中排除一个特定的URL。这是我到目前为止所做的并没有工作并导致重定向循环:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*iphone|ipod|blackberry|android|sgh|sonyericsson|psp|mot|htc|lg|nokia|palm|treo|j2me|webos|smartphone|symbian.*$ [NC]
RewriteCond %{REQUEST_URI} !^http://www.example.com/mobile [NC]
RewriteRule ^(.*) http://www.example.com/mobile [R=302,L]

任何人都可以找出导致该特定网址重定向循环的原因吗?它只是该域上的一个文件夹,其中.htaccess只包含RewriteEngine off和一个带有header()重定向调用的index.php文件。

1 个答案:

答案 0 :(得分:8)

%{REQUEST_URI}变量从不看起来像http://www.example.com/mobile,因为它永远不会包含协议(“http://”位)或主机信息(“www” .example.com“`部分)。您只需要URI部分

RewriteCond %{REQUEST_URI} !^/mobile 

如果您还需要检查主机名,则还需要一个附加条件:

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]