.htaccess htaccess并将一个url转发到另一个url

.htaccess htaccess并将一个url转发到另一个url,.htaccess,.htaccess,我有一个重写代码: RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$ RewriteRule ^(.*)$ http://stagingsite.com/site/mobile [R=301] RewriteRule ^faq/$ /mobile/faq 第一行工作正常。如果用户在iphone上,则重定向到显示索引页的移动目录 我还希望用户访问: 如果他们在iphone上,但上面的最后一行代码似乎没有实现这一点 你知道我错了什么吗?在移动之前去掉斜杠 R

我有一个重写代码:

RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^(.*)$ http://stagingsite.com/site/mobile [R=301]
RewriteRule ^faq/$ /mobile/faq
第一行工作正常。如果用户在iphone上,则重定向到显示索引页的移动目录

我还希望用户访问:

如果他们在iphone上,但上面的最后一行代码似乎没有实现这一点


你知道我错了什么吗?

在移动之前去掉斜杠

RewriteRule ^faq/$ mobile/faq 

有效吗?

RewriteCond
指令仅适用于紧跟在
RewriteRule
之后的*指令。因此,您有一个检查iPhone的条件,但这只适用于重定向规则,而不适用于faq规则。您必须复制它:

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
标志,以便这两条规则不会意外地相互干扰。您的正则表达式和目标需要更新以接受可选的尾部斜杠和子目录