На моем клиентском сайте 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
Теперь это не вызвало никаких ошибок, ноон также не перенаправил.