【问题标题】:Google Indexing Non-Existent URLs. WordPress Doesn't Show 404谷歌索引不存在的 URL。 WordPress 不显示 404
【发布时间】:2013-02-27 03:56:48
【问题描述】:

我正在查看 Google 搜索结果:“site:mywordpress.org”。并发现不应该存在的地段或页面被编入索引。

这里有两个问题:

  1. 我不知道 Google 是如何定位、抓取或找到这些网址的。

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

我尝试了 Wordpress 支持论坛,但没有人回复。我也找不到任何人报告这个问题。这是我看到的一个例子:

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

我添加了一个指向头部的规范链接引用,并且我已经做了很多 Google WMT 删除请求,但我仍然看到一些类似的结果。

我已经在几个 wordpress 安装中对此进行了测试,似乎如果您在永久链接的末尾添加任何数字字符串,它仍然会显示内容而不是显示 404 错误。

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

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

【问题讨论】:

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


    【解决方案1】:

    您是否检查过是否是某些插件导致了这种情况?还要检查 Settings > Permalinks

    下的 Permalink 设置

    在您找到问题的根源之前,您可以尝试使用Redirect plugin 来解决它。

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

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

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

    【讨论】:

    • 谢谢,我正在调查这个。正则表达式支持是离合器。
    【解决方案2】:

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

    只需将其添加到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;
            }
        }
    }
    

    【讨论】:

    • 我也遇到了同样的问题,试过这个功能还是不行,不知道1年多以后还能用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 2018-07-11
    相关资源
    最近更新 更多