ブラウザの言語に合わせて表示ページを振り分けたい
http://www.abc.ne.jp/ // 日本語サイトルート
http://www.abc.ne.jp/en/ // 英語サイトルート
という構成のサイトを海外から検索・閲覧する時にhttp://www.abc.ne.jp/en/の方を表示するように修正したいと考えています。
(1)ページランクは下げたくない
http://www.abc.ne.jp/に下記のようなソースのindex.phpを置き、http://www.abc.ne.jp/jp/または http://www.abc.ne.jp/index_jp.phpを作成し日本語サイトトップページとする場合、index.phpがコンテンツのないリダイレクトするだけのファイルになってしまうため、SEO上好ましくないのではないかと考えています。
【ソース】
$languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$languages = array_reverse($languages);
foreach ($languages as $language) {
if (preg_match('/^ja/i', $language)) {
header("Location: http://www.abc.ne.jp/jp/");
} else {
header("Location: http://www.abc.ne.jp/en/");
}
}
(2)閲覧者の表示言語の選択肢は残したい
現状通りの構成でhttp://www.abc.ne.jp/index.phpに下記のようなソースを記述し、英語環境からアクセスされたらhttp://www.abc.ne.jp/en/へリダイレクトする場合、日本語のページを見たい場合でも強制的にhttp://www.abc.ne.jp/en/へリダイレクトされてしまいます。
【ソース】
$languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$languages = array_reverse($languages);
foreach ($languages as $language) {
if (preg_match('/^en/i', $language)) { // http://www.abc.ne.jp/en/にはpreg_match('/^ja/i', $language)
header("Location: http://www.abc.ne.jp/en/");
}
}
(1)、(2)の要件を満たしつつ、閲覧環境に合わせて表示するページを制御することは可能でしょうか。
良い方法があればご教示ください。
よろしくお願いします。
お礼
早速のご回答ありがとうございます。 なるほど!クッキーのデータを利用ですか。 参考にさせていただきます! 質問内容の改変にあたり失礼かもですが、要は特定1ユーザが更新を ○回バババっと押してその画像が消えるのを防ぎたいので、 少しおかしい言い方ですが、”ある程度なユニーク”もしくはを望んでおります。 よくよく考えてみると閲覧者がリロードしたかしてないか 等は判定はおそらく不可能・・ですよね(できればいいのですが><)