wordpress访问文章动态链接自动跳转到伪静态链接

今天突然发现,我的博客的文章出现了动态地址访问记录,也就是说网站访问者通过?p=123的形式的动态链接可以访问我的网站,正常访问。但按理来说,后,游客访问动态链接时,wordpress会自动判断,将网址自动跳转到静态化后的URL,不知是什么地方出了问题。在网上搜索了一圈,找到了这个代码很实用。特发帖分享出来,大家也可以试试自己的网站用动态链接是否可以访问,如果不会跳转,可以试试这个代码。

在functions.php中加入下面的代码

function fix_url_uri(){
    // 解决动态网址也可以被访问的问题
    $redirect_canonical = redirect_canonical();
    if($redirect_canonical){
        wp_redirect($redirect_canonical,301);
        exit;
    }
}
add_action('get_header','fix_url_uri',-1);

 

代码很简单,即使用了redirect_canonical()函数获取静态化后的标准地址,这样就可以正常跳转了。