我有这个重写代码:
RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^(.*)$ http://stagingsite.com/site/mobile [R=301]
RewriteRule ^faq/$ /mobile/faq
第一行正常运行。如果用户在iphone上,则重定向到显示索引页面的移动目录。
我也希望用户访问:
http://stagingsite.com/site/faq
如果它们在iphone上,则转发到http://stagingsite.com/site/mobile/faq,但上面的最后一行代码似乎没有达到此目的。
我有什么想法吗?
答案 0 :(得分:1)
RewriteCond
指令仅在RewriteRule
之后立即应用于*。因此,你有条件检查 iPhone ,但这只会应用于重定向规则,而不是常见问题规则。你必须复制它:
RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^(.*)$ http://stagingsite.com/site/mobile [R=301,L]
RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^faq/?$ /site/mobile/faq [L]
您还应该包含L
标记,以便2条规则不会意外地相互干扰。并且您的正则表达式和目标需要更新以接受可选的尾部斜杠和子目录。
答案 1 :(得分:0)
在移动之前删除斜杠
RewriteRule ^faq/$ mobile/faq
作品?