Google索引不存在的网址。 WordPress不显示404

时间:2013-03-11 20:09:38

标签: wordpress http-status-code-404 unix-timestamp permalinks

我正在检查Google搜索结果:“site:mywordpress.org。”并且找到了不应该存在的索引的批次或页面。

这里有两个问题:

  1. 我不知道Google如何找到,抓取或找到这些网址。

  2. Wordpress没有显示404错误,因此看起来像重复的内容。

  3. 我尝试过Wordpress支持论坛,但没有人回复。我也找不到任何报告此问题的人。以下是我所看到的一个例子:

    mywordpress.org/blog-post/
    mywordpress.org/blog-post/1363035032000/
    

    我添加了一个关于头部的规范链接引用,我一直在做很多Google WMT删除请求,但我仍然看到一些像这样的结果。

    我已经在一些wordpress安装上测试了这个,似乎如果你在永久链接的末尾添加任何数字串,它仍然会显示内容而不是显示404错误。

    我还注意到,永久链接中添加的数字是UNIX时间戳,末尾有几个零。截至本文,当前的UNIX时间戳为:1363035971。

    我正在寻找一些关于我应该做些什么的建议。我特别感兴趣的是一个PHP函数,它会检查url以查看最后是否有一串数字,如果存在,301会将其重定向到正确的永久链接。我还重视谷歌为什么找到这些错误的网址以及UNIX时间戳是线索的任何输入。

2 个答案:

答案 0 :(得分:0)

您是否检查过某个插件是否导致此问题?另外,请检查设置>下的永久链接设置。固定链接

在找到问题根源之前,您可以尝试使用Redirect plugin删除它。

这个插件有很多功能,对你的情况很重要的两个功能是:

  • 可以重定向所有网址,而不仅仅是不存在的网址
  • 完整的正则表达式支持

因此,在正则表达式的帮助下,您可能能够将带有数字的URL重定向到正确的URL。

答案 1 :(得分:0)

我遇到了同样的问题并找到了解决这个问题的方法。

只需将其添加到functions.php

即可
 add_action( 'template_redirect', 'so16179138_template_redirect', 0 );
function so16179138_template_redirect()
{
    if( is_singular() )
    {
        global $post, $page;
        $num_pages = substr_count( $post->post_content, '<!--nextpage-->' ) + 1;
        if( $page > $num_pages ){
            include( get_template_directory() . '/404.php' );
            exit;
        }
    }
}