0

我有一个服务于国际市场的网站,需要根据用户的 IP 使用 3 个不同的域名之一。

以下是用例:

  • 来自英国的用户 IP,域名显示为 www.example.co.uk
  • 来自澳大利亚的用户 IP,域名显示为 www.example.co.au
  • 所有其他 IP,域名显示为 www.example.com

在答案中,我不需要知道每个国家/地区要使用的确切 IP 地址,因此您可以在答案中使用通用 IP - 除非您想加倍努力并根据国家/地区的实际 IP 创建它给定的。

谢谢!

4

2 回答 2

1

你需要安装 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]
于 2012-09-24T01:01:20.203 回答
0

我认为在索引文件的开头使用 PHP 代码会更容易。$_SERVER['REMOTE_ADDR']

于 2012-09-23T15:42:35.570 回答