7

サーバー上のすべてのサイトのhttpd.confでグローバルモバイルリダイレクトを設定しようとしていますが、編集する必要があるのは1回だけですが、92回です。モバイルのすべてのサイトは1つの場所にリダイレクトされるため、問題ありません。

ただし、特定の1つのURLをリダイレクトから完全に除外したいと思います。これまでのところ、機能しておらず、リダイレクトループが発生しているものを次に示します。

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*iphone|ipod|blackberry|android|sgh|sonyericsson|psp|mot|htc|lg|nokia|palm|treo|j2me|webos|smartphone|symbian.*$ [NC]
RewriteCond %{REQUEST_URI} !^http://www.example.com/mobile [NC]
RewriteRule ^(.*) http://www.example.com/mobile [R=302,L]

誰かがその特定のURLでリダイレクトループを引き起こしている理由を理解できますか?これは、そのドメイン上のフォルダーであり、.htaccessのみが含まRewriteEngine offれ、index.phpファイルにはheader()リダイレクト呼び出しが含まれています。

4

1 に答える 1

10

プロトコル (「http://」ビット) やホスト情報 (「www.example.com」部分) が含まれないため、%{REQUEST_URI}変数はのようにはなりません。URI部分のみが必要http://www.example.com/mobileです:

RewriteCond %{REQUEST_URI} !^/mobile 

ホスト名も確認する必要がある場合は、追加の条件が必要です。

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
于 2012-11-08T16:29:30.200 に答える