web-dev-qa-db-ja.com

ユーザーの位置に基づくリダイレ​​クト

フランスのユーザーをmysite.comからmysite.frにリダイレクトしようとしています。 DNS CNAME recordsを使用することは可能ですか、それともGEOLocationコードを記述する必要がありますか?

他のアイデアはありがたいです。

よろしく、
シャキブ

3
Shakib Zabihian

ユーザーの場所に従ってリダイレクトするためにDN-Serverを使用しようとしたことはありません。

尋ねられる重要な質問:

国固有のコンテンツまたは言語固有のコンテンツについて話しますか?

2つの異なるサイトがあり、フランス領のコンピューターにアクセスし、「mysite.com」を「mysite.fr」と入力するユーザーをリダイレクトしますか?または、国(または言語)固有のビューを持つ1つの大きなシステムについて話しますか?

さらに:どのようなリダイレクトメカニズムを適用しても、リダイレクトが誤った仮定に基づいていた場合に備えて、ユーザーが他の場所に移動できるようにします。ユーザーがパリのヒルトンに座り、フランス語を話せないという理由だけで、ユーザーが最終的にフランス語のインターフェイスに縛られる場合、それは非常に悪いUIです!

仮定に基づいて、1つの大きなシステムについて話すという2つの可能性を見てみましょう。

a)サイトがeコマースサイトなどであり、フランスに住んでいる顧客にフランスセクションを訪問してもらいたい場合! -明らかであるよりも、実際の場所を検索する必要があること-例えばIPに基づいています。つまり、必ずしもフランスのユーザーをリダイレクトするのではなく、フランスに住んでいるユーザーをリダイレクトします。あなたのサイトがフランス、アメリカ、ドイツなど、さまざまな場所に固有である場合、これが適切なソリューションです。

b)それが単に言語の理由のためである場合、実際のユーザーの優先言語を知り、ユーザーが好む言語でコンテンツを表示するサイトのそのバージョンに彼/彼女をリダイレクトしたい場合よりも。これで、ユーザーをリダイレクトしています。コンピューターでフランス語の言語設定を使用します。これは、言語設定を示しています。これにより、すべてのフランス語圏の国のユーザーと、フランス語のブラウザー設定を持っているが、異なる国に住んでいるユーザーをフランス語サイトにリダイレクトします。コンテンツが特定の場所ではなく、異なる言語に翻訳されている場合、それは良いことです。

とはいえ、両方の問題の解決策があります。

問題Aでは、サイト訪問者のIPを検索し、そのIPの場所に基づいてユーザーをリダイレクトします。ほとんどのCMSシステムには、そのためのモジュールがあります: http://drupal.org/project/smart_ip/http://drupal.org/project/ip2locale 。独自のシステムを開発する場合は、コードを調べてください。この種のモジュールは、関連するすべてのシステムに対応しています。

問題Bでは、ブラウザの設定を検索する必要があります。この種の言語交渉は、多言語CMSシステムの一部である必要があります...

また、Appleまたは他の大きな国際サイトで使用される実装も確認します。これらの国にはすべての国の.comサイトがありますが、国固有の場所に.deにアクセスしようとするユーザーをリダイレクトします。それからApple.com/de/に到着します-これは良い解決策だと思います。この場合、国固有のURLを介してすべての直接訪問を国セクション(.fr-com/fr)にリダイレクトしますが、これはシステムレベルではなくサーバーレベルでも発生する可能性がありますが、.comへのすべての訪問者はIPまたはブラウザの言語に基づいてセクションにリダイレクトされます。そのすべてで、適切な言語または国のナビゲーション(たとえばCookieに基づいて記憶する)が必須です-そのため、誤って間違った場所に連れて行かれたユーザーが自分の道を見つけることができます...

現在、2つの異なるサイトがあり、現在のサイト以外の場所にユーザーをリダイレクトしたい場合、ユーザーは訪問していますが、それは少し異なります。そのシナリオの解決策について考えることができるよりも、お知らせください。

4
ChrisZZ

Accept-Languageヘッダーだけをチェックできないのはなぜですか?ブラウザーは何らかの理由で送信します。それでも解決しない場合は、GEOlocation情報を取得してください。

そして、すべての情報を入手したら、ユーザーにフランスのサイトバージョンにリダイレクトするように提案できます。

1
maszynka