将 404 重定向到在 404 模板上使用分页进行搜索
首先,我想明确一点,我知道在处理404错误时,什么是最佳实践。但是,我有一个特定的情况,我可能需要一个量身定制的方法。
我正在处理一个拥有超过10年档案的报纸网站,其中包含150k以上辛勤工作的内容和大量仍然被点击的链接。它也经历了很多麻烦:在WP之前有3个不同的CMS,每个CMS都有自己的链接结构,并且在每次更改时都无法进行重定向。因此,从SEO的角度来看,现在档案几乎“丢失”了。
由于超过90%的内容放错了位置,因此展示经典的404并不是一个真正的选择。紧急出口是将URL中的单词重定向到搜索查询(在过滤掉常量之后),并希望获得最佳效果。在大多数情况下,相关结果显示在顶部,但并非总是如此。出于这个原因,我认为假装404根本不在那里是错误的。
我想到的另一种方法是:逐字保留URL,发送404状态,但使用404模板在相关单词上显示搜索查询(带有's'参数)。WP_query
这样做的好处是,在强匹配(那些几乎肯定是“我感到很幸运”的匹配)上,我可以决定强制进行实际的301重定向。然而,情况并非总是如此:有时实际想要的文章在列表后面很远。尽管如此,它几乎可以正常工作,除了由于某种原因,分页在404上不起作用。所以现在我认为需要做两件事之一:
如果可能的话,简单的解决方案是:以某种方式使分页在404模板上工作 - 因为我不知道为什么它还没有,我不知道它是否可以完成或如何完成。(更新:很可能是因为分页查询 var/slug 被视为搜索的一部分)
复杂的解决方案(如果可行):使用搜索模板本身。“搜索”slug可以通过与重写规则挂钩来完全删除,从理论上讲,这几乎将任何抛向它的URL都变成了搜索。巨大的问题是,它也适用于邮政编码以及除类别和标签之外的其他所有内容。因此,我从中得到的是以下内容:每当有URL请求时,Wordpress都会查看是否存在类别匹配,然后是标记,然后进行搜索。只有在此之后,它才会寻找匹配的作者,档案,帖子等。如果我能以某种方式加入wordpress关于url解析优先级的内部规则,并将搜索内容移动到列表的末尾,那么问题就会得到解决。
$wp_rewrite->search_base = '';
我不得不承认,我没有尝试任何实际的代码。我不知道从哪里开始,我不知道要搜索什么,而且似乎也很少有文档可以证明我想要的东西。到目前为止,我所能做的就是盲测,如上所述。
因此,问题是是否有任何方法可以执行上述任一操作以及如何执行。