- ベストアンサー
ブラウザの言語に合わせて表示ページを振り分ける方法とは?
- ブラウザの言語に合わせて表示するページを制御するためには、リダイレクト処理を使用する方法があります。
- 要件を満たしつつ、閲覧環境に合わせて表示するページを制御するためには、HTTP_ACCEPT_LANGUAGEヘッダを使用してブラウザの言語情報を取得し、その情報に基づいてリダイレクトを行います。
- ただし、検索エンジンのクローラが正しいページをクロールできるようにするためには、正しいサイトマップを提供することも重要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>(1)ページランクは下げたくない トップページからのリダイレクトは止めたほうがいいと思います。 以前リダイレクトさせた時に、一気に圏外まで落とされました・・・。 Smarty等のテンプレートエンジンを使用する方法は手遅れでしょうか? もしガッチリ作り込みされているシステムでしたら、今更?って感じですが、 テンプレートエンジンの選択肢がOKであれば、HTTP_ACCEPT_LANGUAGEで識別して 日本語と英語それぞれの、該当のテンプレートファイルを呼び出せば良いと思います。 >(2)閲覧者の表示言語の選択肢は残したい Smarty等のテンプレートエンジンを使用する選択肢がOKであれば、 http://www.abc.ne.jp/index.php で、(1)は解決しますので、 ご提示されているように、 http://www.abc.ne.jp/en/ とディレクトリを用意し、http://www.abc.ne.jp/index.phpの 英語のコンテンツと全く同じものを「 en 」ディレクトリに設置します。 但し、HTTP_ACCEPT_LANGUAGEの制御はこのディレクト内では行わないようにします。 では、お役に立てれば幸いです。
その他の回答 (1)
- t_ohta
- ベストアンサー率38% (5238/13705)
自動で振り分けるのではなく、閲覧者に選ばせるのが一番いい選択ではないでしょうか。 多言語で作成しているサイトではよくある導線だと思います。 どうしても選ばせるのがダメだと言うことであれば、全てのページに言語切り替えのリンクを表示するようにして、cookieに選択された言語を入れるようにして判定に使い、cookieが無いときだけHTTP_ACCEPT_LANGUAGEの値を見て振り分けるというのも手ではないでしょうか。 これも多言語で作成しているサイトでよくある機能だと思います。 ブラウザの言語設定は、普通の人はいじらないので結構いい加減だったりします。 一般的にはOSの言語設定を元に初期設定されている場合が多いですが、OSの言語と利用者の言語が一致しているとは限りませんので、利用者が選択する方法がいいと思います。
お礼
t_ohta様 ありがとうございます。 ひとまず自動振り分けではなく閲覧者に選んでいただく形にしたいと思います。
お礼
nazal2010様 ありがとうございます。 Smartyを使用すれば実現可能なのですね。 あいにく私が勉強不足なため、ご提案の手法は導入できませんが、次回以降のため勉強しておきたいと思います。