0

ユーザーを特定の国から別の言語にリダイレクトしたいと思います。そのため、MaxMindのGeoIPv6.datとgeoip.incを自分のWebページのフォルダーにアップロードしました。

index.phpのヘッダーで次のスクリプトを使用しています。

<?php

require_once('geoip.inc');

$gi = geoip_open('GeoIPv6.dat', GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);

$my_countries = array('AT', 'DE');
if (!in_array(strtolower($country), $my_countries))
{
header('Location: http://www.de.mywebsite.com');
}
else
{
header('Location: http://www.mywebsite.com');
}
?> 

不思議なことに、スクリプトは全員をde.mywebsite.comに転送しますか?何故ですか?この問題を解決するにはどうすればよいですか?

ご協力いただきありがとうございます!!!

4

2 に答える 2

1

ドイツとオーストリアからの訪問者を除く全員をドイツのサイトにリダイレクトしています。

あなたはおそらくしたいです

if (in_array(strtolower($country), $my_countries))

条件を反転する感嘆符なし。

ああ、そして@Alexが彼の答えで言っていることも。

于 2012-07-29T15:59:51.993 に答える
1

国コードを小文字に変換していますが、配列に大文字をシードしています。

$my_countries = array('AT', 'DE');
if (!in_array(strtolower($country), $my_countries))
于 2012-07-29T15:59:59.793 に答える