WordPress: использование CloudFlare для перенаправления на URL в зависимости от страны IP - PullRequest
0 голосов
/ 27 октября 2018

На моем клиентском сайте WordPress работает CloudFlare.В CloudFlare у меня включена IP-геолокация, а также совместимость с IPv6 и Psuedo IPv4.

Я пытаюсь заставить кого-либо с канадского IP-адреса перенаправить на канадскую версию моего сайта.,Я попробовал этот код в header.php моей дочерней темы:

$country_code = $_SERVER ["HTTP_CF_IPCOUNTRY"];

if ($country_code=="CA") {
    $link = 'https://ca.example.com';
}
else {
    $link = 'https://example.com';
}

header("location:$link");
exit;

Но это создало ошибки перенаправления на стороне США.Казалось, он правильно перенаправил в Канаде.Так как я могу заставить его работать там, где канадцы получают перенаправление, но никто другой этого не делает?

Я также пробовал это в .htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
SetEnvIf CF-IPCountry "(.*)$" Country=$1
RewriteCond %(ENV:Country) CA
RewriteRule ^(.*)$ https://ca.example.com/$1 [R,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Теперь это не вызвало никаких ошибок, ноон также не перенаправил.

1 Ответ

0 голосов
/ 27 октября 2018

Использование функции wp_redirect () с ловушкой template_redirect https://developer.wordpress.org/reference/functions/wp_redirect/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...