您好,
是否可以自动将所有损坏的 404 页面重定向到主页或其他页面?
此致
您好,
是否可以自动将所有损坏的 404 页面重定向到主页或其他页面?
此致
由于 Discourse 不使用 htaccess,我不确定在哪里可以找到解决方案。任何帮助都将不胜感激 ![]()
也许你可以构建一个插件来实现这一点?
立即重定向可能会令人困惑,所以为什么不让 404 路由在短暂延迟后重定向到主页,并附带一条相应的消息?
这或许可行,但我不知道该怎么做 ![]()
有这样的插件吗?
我不这么认为。你可以去 Marketplace
Htaccess 不应该被使用,即使 Discourse 前面有 Apache2——但实际上并没有。
Docker 会让事情变得更复杂
我不知道该如何处理。但如果你愿意,可以在 Discourse 前面放置 Nginx(或其他任何服务器/反向代理)。然后这样的重定向应该是一个相当简单的任务。你可以做类似这样的事情:
但你为什么要首先将 404 重定向回主页呢?如果用户在寻找某样东西却得到了主页而不是想要的东西或 404,这会有点令人困惑。然后该用户会再次尝试,因为也许她/他做错了什么,或者该网站有问题。完全不必要,而且每个网站都应该显示错误 404 而不是某种奇怪的重定向是有原因的。
我正在将我的 WordPress 博客迁移到 Discourse。现在由于链接结构不同,迁移后将会有大量的 404 页面。我无法手动为每个页面设置重定向,因此我需要一种自动执行此操作的解决方案。
是的,但这并不是一个解决方案。这只是一个糟糕的修复,仅此而已。你的网址结构仍然是错误的,你只是在隐藏它。而且,你不能那样转移SEO价值;)
无论如何——你那里有一个服务器。试试用它?
如果您为 WordPress 和 Discourse 站点使用不同的子域,您很可能可以在 WordPress 服务器端完成此操作。
可以修改 page_not_found.title(原为“哎呀!该页面不存在或已设为私有。”),可惜的是,没有类似 page_not_found.content 的内容可以让您详细解释情况。
该选项不涉及任何重定向,如果我没记错的话。
那些链接指向的内容……是否将迁移到 Discourse?例如,如果那些链接指向您正在转换为主题的博客文章,那么您可以创建永久链接:Redirect old forum URLs to new Discourse URLs using permalinks
您也可以将这些 URL 重新映射到其他内容。假设 URL 具有一些共同的格式,您可以使用 REGEX 和 remap 命令来替换它们:
remap [--global,--regex] FROM TO
如何使用该命令的示例:
discourse remap --regex "\\[\/?color(=[^\]]*)*]" "" # 移除 "color" bbcodesc
除非在 WordPress 服务器上执行此操作,否则将无法同时满足 Google 和用户的需求。
5 个帖子已拆分到一个新主题:删除主题后如何重定向到主页?
您可以使用“自定义”功能将所有损坏的 404 页面重定向到主页或其他页面。
转到“自定义” > “主题” > “创建新主题”部分 > 为您的主题命名,例如“404 重定向”,并将“基础主题”设置为“默认”。
然后创建新主题 > 编辑 CSS/HTML。在 HTML 部分,创建一个 JavaScript 代码段来处理重定向。
粘贴此代码。
<script type="text/discourse-plugin">
api.onPageChange((url, title) => {
// 将所有 404 页面重定向到主页
if (url.includes('/404')) {
window.location.href = '/';
}
});
</script>
请根据您的需要调整页面名称。阅读此 将旧 URL 重定向到新的 Discourse URL