我有一个服务于国际市场的网站,需要根据用户的IP使用3个不同的域名之一。
以下是用例:
在答案中,我不需要知道每个国家/地区使用的确切IP地址,因此您可以在答案中使用通用IP - 除非您想加倍努力并根据实际IP创建此IP地址来自给定的国家。
谢谢!
答案 0 :(得分: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]
答案 1 :(得分:0)
我认为在索引文件开头使用PHP代码会更容易。 $_SERVER['REMOTE_ADDR']