【发布时间】:2015-09-04 16:01:28
【问题描述】:
我正在尝试: 根据访问者的 IP 进行重定向,我的网站托管在 wpengine 上,他们有一个 GEO IP 服务,我可以根据他们的 IP 获取用户所在的国家/地区。如果您从瑞典、丹麦或挪威访问该网站,您将不会被重定向但会停留在页面上...http://www.centuri.se 但如果您不是来自这些国家/地区,您将被重定向到该网站的英文版本,该网站已翻译用 wpml... 所以你会去这个页面... http://www.centuri.se/en/ 这是翻译的。
我正在使用这段代码进行重定向。
<?php
// THE COOKIE NAME
$cookie_name = "country";
// ACCEPTED COUNTRIES THAT SKIPS THE REDIRECT
$countries = array('se','dk','no');
// CHECK IF YOUR COOKIE IS SET
if (!isset($_COOKIE[$cookie_name])) {
// GET USER INFO
$userInfo = do_shortcode('[geoip-country]');
// GET COUNTRY INTO LOWERCASE
$country = strtolower($userInfo);
//SET COOKIE BASED ON COUNTRY NAME FROM USER
setcookie('country', $country, time() + (3600 * 24 * 30), '/');
if(!in_array($country, $countries)) {
//Set a cookie to tell that this user has been redirected
setcookie('redirect', 1, time() + (3600 * 24 * 30), '/');
wp_redirect( home_url() . '/en/' ); exit;
}
}
?>
在我的 wpengine 登台服务器上,这个解决方案完美无缺,您可以自己测试它http://centuri.staging.wpengine.com,但是当这个脚本应用于我的实时服务器时,我被重定向到http://www.centuri.se/en/en,并会收到一条 404 消息 - 我已经尝试过将重定向的一部分从 home_url() 切换到 site_url() 以查看任何区别,但如果我在我的实时服务器上这样做,这会给我一个重定向循环。我现在已经为我的实时网站评论了这一点,因为它会使我的网站崩溃。
这可以是 WPML 中的任何设置吗?我真的不知道从哪里开始......这太令人困惑了,因为它在我的登台服务器上运行完美,而不是在我的实时服务器上运行,并且代码和数据库是相同的。
【问题讨论】:
标签: php .htaccess redirect country wpml