摘星廓(https://www.255star.com)全站已换成自适配模板,大家在电脑和手机都可以顺畅浏览本站内容。
39686

wordprss伪静态化动态地址被收录,动态地址没有301跳转静态地址怎么办

二五杂谈 aty25 1890次浏览 1个评论

前段时间,本人无意中发现自己的wordprss网站被百度收录了动态网址,也就是带有一个“?”的网址。例如www.255star.com/?p=7520。

我的wordprss网站明明我已经做了htaccess的伪静态设置,动态地址为什么还会被收录呢?我直接在浏览器地址栏粘贴了www.255star.com/?p=7520,居然发现没有301跳转到www.255star.com/7520.html

我用站长工具的http状态码一查,www.255star.com/?p=7520的状态码是200,又叫朋友帮忙测试了一下,依然是200状态码。

这就把我急坏了,www.255star.com/?p=7520和www.255star.com/7520.html都是200状态码,那就说明两个url都可以被百度蜘蛛抓取到,也难怪百度会收录动态地址的。同一页面存在两个可访问地址,这也违反了seo中的url唯一性规则,是不利于静态页面收录的。我又访问了类似把文章url设置成数字的wordprss网站,发现他们的动态网址是有301跳转到静态地址的。

遇到这样的问题,我第一时间想到了空间商,应该是他们的虚拟空间设置出了问题才会导致动态网址无法301跳转到静态网址的。第二天找了空间商客服和技术咨询解决方法,结果他们的答复是超出能力范围,只是发了一篇网上搜索的解决方法给我叫我试一下。

这篇文章说的解决方法是:

在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);

我试了一下,结果发现依然没用。

经过一番探索和总结,得出以下的几种解决方法:

1.在robots.txt中用 disallow:*?*来屏蔽动态地址的抓取;

2.在head代码中添加rel=”canonical”标签来强调文章页的静态链接,让搜索引擎抓取静态网址。但是发现文章模板的head是最站通用的,那应该怎样添加canonical标签才合适呢?

wordpress 中使用 canonical 的方法

如果你使用的是 WordPress,只要版本是在 WordPress 2.9 及以上的,应该都已经默认支持 canonical 标签了。2.9 以前的版本可以手工添加以下代码到你使用主题的 header.php 文件的 head 区域即可:

<?php if(is_single()){?>
<link rel=”canonical” href=”<?php echo get_permalink($post->ID);?>” />
<?php } ?>

3.更换主题。本人就是更换主题后发现动态网址重新301跳转到静态地址了,我也想不懂个中原因。

三种方法,如果更换主题可以重新实现动态网址301跳转到静态地址,那就建议这种方法是最好的。如果依然无法实现跳转,那建议添加canonical标签更好。实在不行,最后才用robots.txt。


摘星廓 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明wordprss伪静态化动态地址被收录,动态地址没有301跳转静态地址怎么办
喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 谢谢分享!!
    黄语芙2016-01-23 07:48 回复