さまざまな国からのさまざまな訪問者をさまざまなサブドメインにリダイレクトする方法。米国人など - us.yourdomain.com、インド - India.yourdomain.com
3 に答える
ここから MaxMind の GeoIP.dat データベースをダウンロードします。
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz Free Version (GeoLiteCountry)
次に、ここから geoip.inc をダウンロードします。
http://geolite.maxmind.com/download/geoip/api/php/php-1.11.tar.gz
geoip.inc ファイルを抽出して見つけます。
次に、これら 2 つのファイルを、ページが配置されている同じディレクトリにアップロードします。PHP ページを編集し、その中で次のスクリプトを使用します。
<?php require_once('geoip.inc');
$gi = geoip_open('GeoIP.dat', GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
$my_countries = array('us', 'ca', 'gb', 'fr', 'de', 'nl');
if (!in_array(strtolower($country), $my_countries)){
header('Location: http://www."ALL"TRAFFICURLGOESHERE.whatever');
}
else{
header('Location: http://www."SELECTEDCOUNTRIES"URLGOESHERE.whatever');
}
?>
行でターゲットにする国コードを変更するだけです。
$my_countries = array('us', 'ca', 'gb', 'fr', 'de', 'nl');
言及されている場合は、ターゲット トラフィックと残りのトラフィックの両方の URL。
国コードはここにあります: MaxMind - ISO 3166 国コード
最善の選択肢は、必要な国や言語をすべて含むルート ページを作成し、選択した内容を記憶する Cookie を作成することです。そうすれば、Cookie をクリアしない限り、そのページは 1 回しか表示されません。
一部のサーバーは「Header('location:url')」で動作しないというNirmalの回答に追加したい
理由はわかりませんが、これはサイトグラウンドで私に起こりました
そのため、「header(location....)」の代わりに、echo を使用してから、メタ リフレッシュ メソッドを使用しました。これは、seo によるリダイレクトの方が優れていると考えられています。したがって、完全なコードは次のようになります。
<?php
$website_root_path=’/path/to/root/’;require($website_root_path . ‘geoip.inc’);
$ip=$_SERVER[‘REMOTE_ADDR’];$gi=geoip_open($website_root_path . ‘GeoIP.dat’, GEOIP_STANDARD);
$country = geoip_country_code_by_addr($gi, $ip);
if ($country == ‘US’) {
}
else {
echo ‘<META HTTP-EQUIV=”Refresh” Content=”0; URL=http://non-us.hiboomedia.com”>’;
exit;
}
?>
私の場合、私は、私たち以外の人を私たち以外のウェブサイトにリダイレクトしたかっただけです. あなたのニーズに合わせてください;)