htaccess并将一个网址转发给另一个网址

时间:2012-10-02 13:45:54

标签: .htaccess

我有这个重写代码:

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,但上面的最后一行代码似乎没有达到此目的。

我有什么想法吗?

2 个答案:

答案 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 

作品?