ユーザーのブラウザ言語を検出し、ベースURLにパスセグメントを追加します。例えば、リダイレクトの一つは次のようになります。そこには/デセグメントがwww.domain.com後でないと、ホームページ(www.domain.com)を要求し、英語の場合は :.htaccess言語のリダイレクト:パスセグメントを検出して無限ループを避ける
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/de
RewriteCond %{REQUEST_URI} ^/
RewriteCond %{HTTP:Accept-Language} !en [NC]
RewriteCond %{HTTP:Accept-Language} de [NC]
RewriteRule ^(.*)$ /de [R=302,L]
私はこのようにそれを理解しますプリファード言語ではなく、ドイツ語がwww.domain.com/deにリダイレクトされています。 私の質問はなぜRewriteCond %{REQUEST_URI} !^/de
とRewriteCond %{REQUEST_URI} ^/
はいつも真のですか?このリダイレクトを私の.htaccessに挿入する前に、私の設定であるhere(他の.htaccessの質問にあります)がテストされ、うまくいきました。あなたは私がそれを歓迎する別の解決策がある場合。ありがとうございました。
@enubhavaはい、ありがとうございます。このリダイレクトがwww.domain.comページのみで動作するように、私は 'RewriteCond%{REQUEST_URI}^/'を使用しました。なぜこの条件なしで意図した通りに動作するのですか? –
@enubhavaご質問が不明な場合は申し訳ありませんが、あなたの条件がwww.domain.comのリクエスト(正確に何が必要なのか)についてのみ機能するのはなぜですか? –
これはランディングページにのみ一致するこのパターン 'RewriteRule^/?$'のためです。 – anubhava