1

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

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

我只想将 url 重定向到 www.example.com/nl 给从荷兰请求的人。

我的网站在共享主机中。我怎样才能做到这一点?

4

3 回答 3

5

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

RewriteCond %{HTTP:Accept-language} nl [NC]
RewriteRule ^$ /nl [L,R=301]
于 2012-10-18T09:41:18.887 回答
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');
}
于 2012-10-18T09:54:00.477 回答
2

看看 apache 模块 mod_geoIP,可能会做你想做的事,但否则你将不得不依赖脚本来获取地理位置信息并基于此重定向。

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

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

于 2012-10-18T09:39:42.340 回答