web-dev-qa-db-ja.com

私のウェブサイトのジオローカリゼーション

GeoIPに大きな問題があります。私のウェブサイトの構造は次のとおりです

  • www.domain.com
  • it.domain.com
  • de.domain.com

ApacheのMaxMind GeoIPモジュールを使用して、ユーザーを国の適切なサイトベースにリダイレクトします。

私の問題は、イタリアのユーザーがit.domain.comにアクセスしたときです。geが言語を変更してwww.domain.comを開こうとすると、it.domain.comにリダイレクトされます。ユーザーが言語を選択したときにリダイレクトを防ぐにはどうすればよいですか。

1
ktzouv

ジオロケーションを忘れる-あなたが指摘したように、それは根本的に欠陥があります。ブラウザはAccept-Languageヘッダーを送信します。wwwで確認してください。サイトにアクセスして、一度、ユーザーが好む言語に切り替えます。サブドメインで、言語変更リンクを提供しますが、チェックは行いません。

私は日本から多言語サイトを開発しています(これをよく読んでください)。

RewriteCond %{HTTP:Accept-Language} ^ja.*$ [NC]
RewriteCond %{REQUEST_URI} "^/$"
RewriteRule .* http://ja.example.com/ [L,R=301]
RewriteCond %{HTTP:Accept-Language} ^ja.*$ [NC]
RewriteRule .* http://ja.example.com%{REQUEST_URI} [L,R=301]

そしてもちろん、対処するデータベースはありません。ブラジルで休暇中の日本人スピーカーは、日本語のページを引き続き表示します。

1
paul