2

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

这里有两个问题:

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

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

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

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

我已经为头部添加了一个规范链接引用,并且我一直在做很多谷歌 WMT 删除请求,但我仍然看到一些这样的结果。

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

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

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

4

2 回答 2

1

您是否检查过某些插件是否导致此问题?还要检查设置>永久链接下的永久链接设置

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

该插件具有许多功能,对您的案例很重要的两个功能是:

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

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

于 2013-03-12T10:31:58.730 回答
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;
        }
    }
}
于 2013-09-13T16:52:21.363 回答