尝试从htaccess规则中排除URL

Log*_*est 5 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]
Run Code Online (Sandbox Code Playgroud)

任何人都可以弄清楚为什么它导致该特定网址的重定向循环?它只是该域上的一个文件夹,其中只有一个.htaccess包含RewriteEngine off一个带有header()重定向调用的index.php文件.

Jon*_*Lin 8

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

RewriteCond %{REQUEST_URI} !^/mobile 
Run Code Online (Sandbox Code Playgroud)

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

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
Run Code Online (Sandbox Code Playgroud)