2

中国のユーザーをサイトの中国語版にリダイレクトするために、次のルールが機能しています。

  RewriteCond %{HTTP:Accept-Language} ^zh [NC]
  RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
  RewriteRule ^(.*)$ http://ch.example.com/$1 [L,R=301]

  RewriteCond %{HTTP:Accept-Language} ^zh [NC]
  RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  RewriteRule ^(.*)$ http://ch.example.com/$1 [L,R=301]

これはうまくいきます。

ただし、通常のドメイン (www.example.com) であるサイトの英語版に戻るためのリンクがあります。

しかし、これはルールに一致するため、中国のサイトに直接リダイレクトするだけです. したがって、リファラーが ch.example.com でない場合にのみ上記のルールがトリガーされるようにする必要があります。

私はこのようなことを試しました:

  RewriteCond %{HTTP:Accept-Language} ^zh [NC]
  RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
  RewriteCond %{HTTP_REFERER} !^http?://ch\.example\.com/ [nc]
  RewriteRule ^(.*)$ http://ch.example.com/$1 [L,R=301]

しかし、うまくいきません。

4

1 に答える 1

2

ユーザーが英語のサイトで 2 ページ目を表示すると、中国語にリダイレクトされます。より良い方法は、Cookie を設定してから確認することです。

例: http://www.askapache.com/htaccess/htaccess-fresh.html#Set_Cookie_based_Requested_directory

于 2012-08-29T18:52:55.360 に答える