我正在尝试根据某个国家/地区为我的网站创建自动重定向 用户。该网站仅提供1种语言版本,但价格为 基于国家货币。这是一个简单的网站,主页,条款和 条件,隐私政策等等。我的托管服务提供商是OVH和我 假设他们有Apache服务器。
我试图用php做这件事,但它并没有像预期的那样工作。服务器位于法国,我被重定向到http://www.test.com
PHP:
$country_code = $_SERVER["HTTP_CF_IPCOUNTRY"];
if ($country_code=="PL") {$link = 'http://www.example.com';}
elseif ($country_code=="CA") {$link = 'http://www.example.com/ca';}
elseif ($country_code=="US") {$link = 'http://www.example.com/us';}
else {$link = 'http://www.test.com';}
header("location:$link");
exit;

我尝试编辑htaccess文件但没有发生任何事情:
RewriteEngine On
RewriteCond %{ENV:IP2LOCATION_COUNTRY_SHORT} ^PL$
RewriteRule ^(.*)$ http://www.example.com [L]
RewriteCond %{ENV:IP2LOCATION_COUNTRY_SHORT} ^CA$
RewriteRule ^(.*)$ http://www.example.com/ca [L]
RewriteCond %{ENV:IP2LOCATION_COUNTRY_SHORT} ^US$
RewriteRule ^(.*)$ http://www.example.com/us [L]

任何想法如何以最简单的方式完成?
答案 0 :(得分:1)
检查您的服务器上是否安装了mod_geoip模块(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...
文档:URL