中国のユーザーをサイトの中国語版にリダイレクトするために、次のルールが機能しています。
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]
しかし、うまくいきません。