我正在尝试:根据访问者的 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 中完成的任何设置吗?我真的不知道从哪里开始......这太令人困惑了,因为它在我的登台服务器上运行完美,而不是在我的实时服务器上运行,并且代码和数据库是相同的。