目的
ユーザーの言語に応じて自動リダイレクトを実現しようとしています。私はそのための完全に機能するコードを持っています:
// List of available localized versions as 'lang code' => 'url' map
$sites = array(
"da" => "http://www.fredrixdesign.com/",
"en" => "http://en.fredrixdesign.com/"
);
// Get 2 char lang code
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
// Set default language if a `$lang` version of site is not available
if (!in_array($lang, array_keys($sites)))
$lang = 'en';
// Finally redirect to desired location
header('Location: ' . $sites[$lang]);
?>
これにより、ユーザーがデンマーク人の場合、メイン/ルート Web サイトであるデンマーク語 (da) バージョンにユーザーがリダイレクトされます。ユーザーがドイツ語、英語、ポーランド語などの場合、ユーザーをサブドメインにリダイレクトします。en.fredrixdesign.com
、これはウェブサイトの英語版です。
しかし、デンマークのユーザーが私のサイトにアクセスすると、問題が発生します。私のheader.phpの上部にあるコードは実行され続けます。つまり、リダイレクトを作成し続け、最終的にリダイレクトが多すぎるためにブラウザーにエラーを作成させます. これは理にかなっています。
質問
私の質問は次のとおりです。上記のコードを変更して、リダイレクトを 1 回だけ実行するにはどうすればよいでしょうか。リダイレクトが完了したばかりの場合は、そのままサイトの実行を続行します。