2012-09-23 124 views
0

我有一個網站服務於國際市場,需要根據用戶的IP使用3個不同的域名之一。根據用戶IP地址更改域名htaccess

這裏是用例:來自英國

  • 用戶IP,域名顯示爲www.example.co.uk
  • 用戶IP來自澳大利亞,域名顯示爲www.example.co .AU
  • 所有其他IP地址,域名顯示爲www.example.com

在答案,我不需要知道確切的IP地址,每個國家使用,所以你可以使用一個通用的知識產權在答案 - 除非你w螞蟻會加倍努力,並根據來自所給國家的實際知識產權進行創建。

謝謝!

+0

你需要一些腳本語言,也得到了visior的遠程IP,並進行重定向。 – cc4re

回答

0

我認爲在索引文件開始時使用PHP代碼更容易。 $_SERVER['REMOTE_ADDR']

1

您需要install mod_geoip,然後你可以使用mod_rewrite使用它:

# stuff for initializing mod_geoip 
GeoIPEnable On 
GeoIPDBFile /path/to/GeoIP.dat 

RewriteEngine on 

# rules per country 
# User IP from the UK, domain name appears as www.example.co.uk 
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^GB$ 
RewriteCond %{HTTP_HOST} !example.co.uk [NC] 
RewriteRule ^/?(.*)$ http://www.example.co.uk/$1 [R,L] 

# User IP from Australia, domain name appears as www.example.co.au 
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AU$ 
RewriteCond %{HTTP_HOST} !example.co.au [NC] 
RewriteRule ^/?(.*)$ http://www.example.co.au/$1 [R,L] 

# All other IPs, domain name appears as www.example.com 
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^GB$ 
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^AU$ 
RewriteCond %{HTTP_HOST} !example.com [NC] 
RewriteRule ^/?(.*)$ http://www.example.com/$1 [R,L]