2

我正在开发小型 CMS,我通过RewriteRulein将所有原始目录更改为我想要的目录htaccess,还为移动设备用户添加了移动模板。所以我的网站有两个目录,一个用于计算机客户端,一个用于移动客户端,我使用以下代码检测移动代理并重定向到移动模板,但出现循环错误,有什么想法!?

这是我的重定向代码:

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

这是我当前的 htaccess:

Options +FollowSymLinks
RewriteEngine On
# Change main URL 
RewriteRule ^m/ /mobile/index.php [QSA]
# Change content URL
RewriteRule ^/a/m/([a-zA-Z0-9\.]+)$ /mobile/index.php?pid=$1 [QSA]
4

1 回答 1

1

您需要检查 URI 是否也不是重写后的 URI ( /mobile/...)。您可以通过检查%{THE_REQUEST}或包括检查来做到这一点/mobile

RewriteCond %{THE_REQUEST} !\ /m/.*
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteRule ^(.*)$ /m/ [L,R=302]

或者:

RewriteCond %{REQUEST_URI} !^/a/m/.*$
RewriteCond %{REQUEST_URI} !^/m/.*$
RewriteCond %{REQUEST_URI} !^/mobile/.*$
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteRule ^(.*)$ /m/ [L,R=302]
于 2012-12-27T11:45:15.897 回答