人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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


●質問者: poyo0829
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Hp アクセス 作成
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● きゃづみぃ

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

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

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

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


2 ● a-kuma3

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

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


3 ● saijyoh_739

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

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

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

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

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

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


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


4 ● やす@新宿

.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のページを見て、ホスティング会社がどのような設定をしているか推測しながら、色々試すしかありません。

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ