2012-09-23 77 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]