我在我的客户WordPress网站上运行了CloudFlare。在CloudFlare中,我同时具有IP地理位置和IPv6兼容性以及Psuedo IPv4。
我想做的是让加拿大IP地址中的任何人重定向到我的网站的加拿大版本。我在子主题的header.php中尝试了以下代码:
P \ Q = ~(~P | Q)
但这确实在美方造成了重定向错误。它在加拿大似乎确实正确地重定向了。那么如何在加拿大人获得重定向但其他人没有的地方使它起作用呢?
我也在.htaccess中尝试过此操作:
$country_code = $_SERVER ["HTTP_CF_IPCOUNTRY"];
if ($country_code=="CA") {
$link = 'https://ca.example.com';
}
else {
$link = 'https://example.com';
}
header("location:$link");
exit;
现在,这不会引起任何错误,但也没有重定向。
答案 0 :(得分:0)
使用wp_redirect()函数和template_redirect钩子https://developer.wordpress.org/reference/functions/wp_redirect/
答案 1 :(得分:0)
将此内容粘贴到您的子主题的functions.php文件中。为我工作。
add_filter( 'after_setup_theme', 'ip_redirect_on_cloudflare', 1);
function ip_redirect_on_cloudflare()
{
$CFCountry = $_SERVER['HTTP_CF_IPCOUNTRY'];
switch ($CFCountry){
case "CA":
wp_redirect( 'https://ca.example.com' );
exit;
}
}