WordPress:使用CloudFlare重定向到基于国家IP的URL

时间:2018-10-27 01:44:02

标签: php wordpress redirect url-redirection ipv6

我在我的客户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;

现在,这不会引起任何错误,但也没有重定向。

2 个答案:

答案 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;
    }
}