HPを作成していますが、日本からのアクセスとその他の国からのアクセスによって違うページを表示させたいのですが、どの様にしてよいかわかりません。教えてください!

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/08/09 10:38:46
  • 終了:2011/08/16 10:40:04

回答(4件)

id:taknt No.1

きゃづみぃ回答回数13538ベストアンサー獲得回数11982011/08/09 10:48:25

IPアドレスを取得して 判断します。

IPアドレスの内容については

http://www.cgis.biz/tools/access/

を参考にしてみてください。

id:a-kuma3 No.2

a-kuma3回答回数4465ベストアンサー獲得回数18422011/08/09 11:14:14

Apache を使ってるものだとして、回答します。


Apache には、「コンテントネゴシエーション」という機能があります。

質問にある「どこの国からアクセスしてきたか」そのものではないですが、

「どんな言語を使うアクセスをしてきたか」で、アクセス先を振り替えることができます。


ブラウザの設定に「言語」という項目がありますが、ここで設定した内容は Accept-Language というリクエストヘッダーとして送信されます。

Apache は、この値を見て、URL が xxxx.html で来ているところを、

xxxx.html.ja とか xxxx.html.en とか、言語ごとに用意してあるファイルの内容を

返すように動作します。


あまり分かりやすいとは思わないんですが、例えばこんなこと(↓)。

http://www.itmedia.co.jp/help/tips/linux/l0499.html


もし、Apache のマニュアルが読めるレベルにあるなら、こっち(↓)を参照した方が詳しいです。

http://httpd.apache.org/docs/2.2/ja/content-negotiation.html


自力で情報を探すなら

apache multiviews Accept-Language

というようなキーワードで探すと、情報が引っ掛かります。

id:saijyoh_739 No.3

saijyoh_739回答回数113ベストアンサー獲得回数102011/08/10 04:30:51

a-kuma3さんの回答が良いのかな。

やりたい事が米国と日本で法律が違うから、ページの内容を変えたいという事ならIPアドレスから国を調べてという方法が向いてるかも知れません。

アクセスしてきた者が読める言語で送りたいという事ならa-kuma3さんの方法で行えば良いかと思います。(日本に住んでいても英語が最も良く使える方もいらっしゃるでしょうしイスパニア語やポルトガル語の方も。もちろん日本語の方も)

※ あの方法はApacheでなくても使えます。httpの機能ですので(下記URI参照)httpをしっかり実装しているウェブサーバなら使えるはずです。

http://www.studyinghttp.net/cgi-bin/rfc.cgi?2616#Sec14.4

※ Apacheの標準index.htmlには各国語でのメッセージが入れられていますよね。


両方あわせて対処するのも可能な手法の一つです。

id:yasu_sinjuku No.4

やす@新宿回答回数71ベストアンサー獲得回数102011/08/10 04:33:19

.htaccessでブラウザの言語情報で振分ける方法が一番簡単です。


例えば、さくらインターネットの場合、以下のようにします。

すると、日本語のブラウザは、正常表示され、それ以外の言語のブラウザは、rootにある403エラー用の403.htmlが表示されます。


SetEnvIf Accept-Language ja Lilith

Order Deny,Allow

Deny from all

Allow from env=Lilith

ErrorDocument 403 /403.html


.htaccessの記述方法は、お使いのサーバーによって、若干違ってきます。

詳しくは、Apacheのページを見て、ホスティング会社がどのような設定をしているか推測しながら、色々試すしかありません。

ホスティング会社によっては、サポートしてくれますが、稀だと思います。

  • id:a-kuma3
    >※ あの方法はApacheでなくても使えます。
    HTTP 1.1 で定められたのは知ってるんだけど、IIS って実装してたっけ?
    カビの生えた記憶だと、対応して無かったような...

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません