我正在尝试根据一个国家/地区为我的网站创建自动重定向用户。该网站仅以一种语言提供,但定价将是基于国家货币。这是一个简单的网站,主页,条款和条件,隐私政策,仅此而已。我的托管提供商是OVH和我假设它们有Apache服务器。
这是我要做的:
- 主要地址http://www.example.com
- 波兰语言在波兰的用户使用http://www.example.com。我还拥有一个国家域http://www.example.pl
- 加拿大使用波兰语言的用户自动将其重定向到http://www.example.com/ca
- 使用波兰语言的用户自动将其重定向到http://www.example.com/us
- 来自加拿大和美国以外的国家/地区的所有波兰用户都使用http://www.example.com
- 波兰的可选用户无法为加拿大用户加速版本,反之亦然
- 所有使用英语或任何其他语言的用户,在任何国家/地区,访问http://www.example.com。在标题中,我有链接可以自由更改语言版本,然后访问http://www.someadress.com,反之亦然。
示例
- 访问www.istockphoto.com
- 在我的情况下,我被重定向到http://www.istockphoto.com/ca
- 在波兰,我将被重定向到http://www.istockphoto.com/pl
- 您将根据您的国家自动重定向
示例代码
我试图使用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]
有什么想法我该如何以最简单的方式做?
检查服务器上安装了MOD_GEOIP模块(GEOIP扩展名(。
然后,相应地调整您的.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