0

私はこの書き換えコードを持っています:

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に転送されますが、上記のコードの最後の行ではこれが達成されていないようです。

私が間違っているアイデアはありますか?

4

2 に答える 2

1

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また、2つのルールが誤って相互に干渉しないように、フラグを含める必要があります。また、オプションの末尾のスラッシュとサブディレクトリを受け入れるように、正規表現とターゲットを更新する必要があります。

于 2012-10-02T17:12:24.737 に答える
0

モバイルの前にスラッシュを取り出す

RewriteRule ^faq/$ mobile/faq 

動作しますか?

于 2012-10-02T13:58:41.580 に答える