.htaccess将301重定向到移动目录 - 重定向错误太多ERROR

时间:2013-09-25 15:52:26

标签: regex apache .htaccess mod-rewrite mobile

嘿,有StackOverflow社区,我在stackoverflow上搜索了很多来修复我的“太多重定向”错误。 但找不到任何有用的东西。我想通过.htaccess和UserAgent条件重定向到移动目录。找到一个高投票的解决方案,如下所示:

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone|ipod|ipad|iemobile" [NC]
RewriteRule ^(.*)$ http://mysite.com/mobile/$1 [R=301,L]

重定向本身效果很好,但似乎移动浏览器在循环中添加/移动,因此URL增长到类似http://mysite.com/mobile/mobile/mobile/mobile/mobile/mobile/mobile/mobile的内容,直到我收到错误“由于重定向太多而无法打开网站”

我的完整.htaccess看起来像这样:

AddType video/ogg  .ogv
AddType video/mp4  .mp4
AddType video/webm .webm

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone|ipod|ipad|iemobile" [NC]
RewriteRule ^(.*)$ http://mysite.com/mobile/$1 [R=301,L]

先谢谢Lucas Tito

1 个答案:

答案 0 :(得分:2)

将此RewriteRule替换为:

RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone|ipod|ipad|iemobile" [NC]
RewriteRule ^((?!mobile/).*)$ /mobile/$1 [R=301,L]

问题是,您无条件地在任何网址前加/mobile/前缀,即使是已经以/mobile/开头的网址。