web-dev-qa-db-ja.com

国のIPアドレスに従ってドメインをリダイレクトする方法

いくつかのサブドメインでサイトを作成しました。国のIPアドレスに応じて、ユーザーは対応するサブドメインに自動的にリダイレクトされることになっています。

例:

メインサイトはabcd.comです

  • インドのいずれかがこのURL abcd.comを入力したとします。
  • 次に、ページはind.abcd.comにリダイレクトします
31
user1288065

以下からgeoPluginクラスをダウンロードします。

http://www.geoplugin.com/_media/webservices/geoplugin.class.phps

ルートフォルダーにindex.phpファイルを配置します。

<?php
require_once('geoplugin.class.php');
$geoplugin = new geoPlugin();
$geoplugin->locate();
// create a variable for the country code
$var_country_code = $geoplugin->countryCode;
// redirect based on country code:
if ($var_country_code == "AL") {
header('Location: http://sq.wikipedia.org/');
}
else if ($var_country_code == "NL") {
header('Location: http://nl.wikipedia.org/');
}
else {
header('Location: http://en.wikipedia.org/');
}
?>

国コードのリストは次のとおりです。

http://www.geoplugin.com/iso3166

28
Porta Shqipe

サーバーに mod_geoip モジュール(GeoIP Extension)がインストールされていることを確認してください。

次に、それに応じて.htaccessファイルを微調整します。

GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat

# Start Redirecting countries

# Canada
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CA$
RewriteRule ^(.*)$ http://ca.abcd.com$1 [L]

# India
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^IN$
RewriteRule ^(.*)$ http://in.abcd.com$1 [L]

# etc etc etc...

そして、これが 公式ドキュメント です。

26
Dr.Kameleon

require_once('geoplugin.class.php');なしでこれを行うことができます。

<?php
$a = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$_SERVER['REMOTE_ADDR']));
$countrycode= $a['geoplugin_countryCode'];
if ($countrycode=='US')
    header( 'Location: http://example1.com' ) ;
else 
    header( 'Location: http://example2.com' ) ;

?>
17
Ehsan88

WordPressウェブサイトを使用している場合、その使いやすい-(Geo Redirectプラグイン)。それは魅力のように機能します。使いやすく、実装が簡単です。

1
Grapy