根据国家-HTACCESS重定向用户?

时间:2012-10-18 09:35:24

标签: php .htaccess url-rewriting

。考虑我的域名是www.example.com。它是英文的

我有一个语言版本的荷兰语www.example.com/nl

我想将网址重定向到www.example.com/nl,仅限于向Netherland请求的人。

我的网站是共享托管。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:5)

您可以根据来自用户的浏览器语言设置重定向:

RewriteCond %{HTTP:Accept-language} nl [NC]
RewriteRule ^$ /nl [L,R=301]

答案 1 :(得分:3)

您必须使用GeoIP服务并确定访问者的国家/地区,然后进行正确的重定向。

在此处下载PHP的Geo API http://geolite.maxmind.com/download/geoip/api/php/

有样本如何使用代码。

这就像是

include("geoipcity.inc");
include("geoipregionvars.php");

$gi = geoip_open("/usr/local/share/GeoIP/GeoIPCity.dat",GEOIP_STANDARD);
$record = geoip_record_by_addr($gi,$_SERVER['REMOTE_ADDR']);

if ( $record->country_code == "NL" ) {
    header('Location: http://www.yoursite.com/nl');
}

答案 2 :(得分:2)

看看apache模块mod_geoIP,可能会做你想要的,但是否则你将不得不依赖脚本来获取地理定位信息并根据它重定向。

作为一个侧面话题,IP查找在获取地理位置信息方面并不是100%准确,所以要小心。通常最好让用户选择第一轮,然后保存一个cookie以记住这个选择。

编辑:是的@Pekka有一个很好的观点,谷歌上有很多关于它的信息。