2012-03-23 8 views
18

私はいくつかのサブドメインでサイトを作った。国のIPアドレスに従って、ユーザーは対応するサブドメインに自動的にリダイレクトされるはずです。国のIPアドレスに応じてドメインをリダイレクトする方法

例:

主なサイトはabcd.com

  • インドからいくつかのいずれかがabcd.comこのURLを入力とし、そのページがind.abcd.com
+0

GeoIP拡張機能を使用すると、IPアドレスの場所を見つけることができます。 http://www.php.net/manual/en/book.geoip.php –

答えて

20
にリダイレクトされます

を持っていることを確認してくださいモジュール(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... 

そして、ここではofficial documentationです。

+0

cpanel経由でインストールするには? – Firefog

19

からgeoPluginクラスをダウンロードします。ここでは

<?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/'); 
} 
?> 

は、国コードのリストです:

あなたのルートフォルダに のindex.phpファイルを入れ

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

http://www.geoplugin.com/iso3166

9

あなたはそうのような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') ; 

?> 
0

使用してその簡単なので、あなたは、WordPressのウェブサイトを使用している場合 - (ジオリダイレクトプラグイン)。それは魅力のように働いています。使いやすく、実装が簡単です。

関連する問題