我试图在我的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文件。
答案 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]