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

问题描述 投票:0回答:3

我正在检查 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
3个回答
1
投票

您是否检查过是否某些插件导致了此问题?另请检查设置 > 永久链接

下的永久链接设置

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

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

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

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


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

0
投票

我在 2024 年也遇到了同样的事情。不存在的页面正在被索引。我不是编码员,但想知道 WordPress 是否有办法解决这个问题?

© www.soinside.com 2019 - 2024. All rights reserved.