【问题标题】:How to smart redirect 404 page to search page with keywords from URL?如何将 404 页面智能重定向到带有来自 URL 的关键字的搜索页面?
【发布时间】:2025-12-05 19:25:01
【问题描述】:

我最近经历了几次站点转移,并且永久链接与我的域一起更改。我在社交媒体和 reddit 上都有很多链接,它们都有旧链接。他们被引导到 404 页面。有什么办法可以巧妙地将这些页面定向到使用 url 中的关键字的搜索页面?

这是我当前的 HTACCESS:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

以下是无效链接的示例:

https://lifeandhealth.co/2016/06/12/book-club-sapiens-by-yuval-harari/

这是新链接:

https://prestopost.org/book-club-sapiens-by-yuval-harari/

所有文章都在网站上,可以从网址末尾用一两个关键字找到。

是否有插件,或者最好添加一些代码可以做到这一点?

谢谢

【问题讨论】:

  • 输入您的搜索网址。
  • @SyedNoman 好的,对于我提供的链接,这将是一个很好的搜索示例:[link] (prestopost.org/?s=sapiens+book+club)
  • 您不能在 .htaccess 中使用 WordPress 执行此操作,除非您针对与这些旧 URL 相关的特定/唯一 URL 模式。因为 WP 本身需要通过自己的路由机制来路由所有不存在的 URL。您需要在 WP 完成之后做一些事情,然后它会默认为 404。

标签: php .htaccess url-rewriting http-status-code-404 permalinks


【解决方案1】:

在我看来,你去吧。

RewriteRule ^(.+)$ /?s=$1 [NC,L,R=404]

编辑:

或者你可以使用这个插件Smarty 404

【讨论】:

  • 谢谢 Syed,我试过了,但它什么也没做。
  • 你知道有这样的插件吗?
  • 等我检查一下。所以给你atastypixel.com/blog/wordpress/plugins/smart-404
  • 你知道,我之前看过这个并且很谨慎,因为它已经超过 2 岁了,所以我从来没有打扰过。但我已经尝试过了,它有效!谢谢赛义德。
  • 你不能在 .htaccess 中做这种事情,因为它会破坏 WordPress(如果指令在正确的位置,在 WP 的东西上方。或者,如果它不在正确的位置,它什么也不做)。而且,R=404 并没有做你认为它做的事情......它会导致替换被完全删除,Apache 将提供自己的 404 页面,不会触发重定向。这需要在 WordPress 中完成。
最近更新 更多