0

モバイル エージェントを drupal 6 マルチサイトからモバイル ドメインにリダイレクトするための非常に単純な書き換えルールがあります。

RewriteCond %{HTTP_HOST} ^domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteCond %{HTTP_ACCEPT} text/vnd.wap.wml [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !(ipad|joojoo|tablet|hiton) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
# Param in URL to skip going to mobile site
RewriteCond %{QUERY_STRING} !mobile=1 [NC]
RewriteCond %{HTTP_USER_AGENT} \bagent1|agent2|agent3etc..\b [NC]
RewriteRule (.*) "http\:\/\/m\.domain\.com/" [R=301,L]

www.domain.comまたはdomain.comまたはwww.domain.com /にアクセスするたびに、ホームページを除いて、上記のすべてがうまく機能しています。リダイレクトされません。サイトの他のページは問題なく動作します。rewritebase / を使用してみましたが、同じ結果が得られました。助言がありますか?

ティア

4

2 に答える 2

1

ホームページを除いて、上記のすべてがうまく機能してい www.domain.comますdomain.comwww.domain.com/

REQUEST_FILENAME 条件のない別のルールと、URI パスが空であることを確認する 1 つの追加条件が必要だと思います。

条件は次のルールに対してのみ有効であるため、この追加ルールに対して条件を繰り返す必要があります。このコード ブロックを質問のブロックの上に挿入してみてください。

# Conditions in the question
RewriteCond %{HTTP_HOST} ^domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteCond %{HTTP_ACCEPT} text/vnd.wap.wml [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !(ipad|joojoo|tablet|hiton) [NC]
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteCond %{QUERY_STRING} !mobile=1 [NC]
RewriteCond %{HTTP_USER_AGENT} \bagent1|agent2|agent3etc..\b [NC]

# New condition and rule
RewriteCond %{REQUEST_URI} ^/$       [NC]
RewriteRule ^   http://m.domain.com/ [R=301,L]

注: 置換 URL はプレーン テキスト文字列であるため、現在のルールは改善される可能性があります。このような:

RewriteRule ^(.*) http://m.domain.com/ [R=301,L]
于 2013-04-30T06:18:27.390 に答える