解决 Typecho 自定义 404 页面失效的办法 - 完整解决方案
解决 Typecho 自定义 404 页面失效的办法 - 完整解决方案
爱锋资源库-爱锋助手

解决 Typecho 自定义 404 页面失效的办法 - 完整解决方案

陈诚
12月5日发布 /正在检测是否收录...

解决 Typecho 自定义 404 页面失效的办法!

在使用 Typecho 构建博客时,自定义 404 页面是提升用户体验和优化网站结构的重要功能之一。然而,有时会遇到自定义 404 页面失效的问题,即网站始终显示 Nginx 的默认 404 页面,而不是主题内的 404.php 文件。以下是快速解决这一问题的方法!

自定义404页面

m4ayygg0.png

宝塔默认404页面

m4ayui11.png


问题分析

导致 Typecho 自定义 404 页面失效的原因通常在于 Nginx 配置中存在默认的 error_page 设置,这会覆盖 Typecho 的 404 页面跳转逻辑。

Nginx 的配置文件中类似这样的代码可能会导致问题:

error_page 404 /404.html;

当 Nginx 检测到 404 错误时,它会直接跳转到 /404.html,而不是交给 Typecho 的主题逻辑处理。这就是自定义 404 页面失效的根本原因。

解决办法

一、修改 Nginx 配置

我们需要注释掉 Nginx 配置中的 error_page 404 /404.html;,让 404 错误交由 Typecho 来处理。

操作步骤:

  • 登录你的服务器面板(例如宝塔面板)。
    m4ayw1nu.png
  • 打开你站点的 Nginx 配置文件。
    m4ayx8gi.png
  • 找到以下配置代码:

    error_page 404 /404.html;
  • 在这一行前加上 # 将其注释掉:

    # error_page 404 /404.html;
  • 保存配置并重载 Nginx 服务:

二、添加主题的 404.php 文件

在 Typecho 的主题目录下增加一个 404.php 文件,具体路径如下:
/usr/themes/你的主题目录/404.php

示例代码:

<?php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
$this->need('header.php');
?>
<div class="container">
    <h1>404 - 页面未找到</h1>
    <p>抱歉,您访问的页面不存在。您可以返回 <a href="<?php $this->options->siteUrl(); ?>">首页</a>。</p>
</div>
<?php $this->need('footer.php'); ?>

提示:

你可以根据主题样式自定义 404.php 的内容,保持与其他页面的风格一致。
确保文件名为 404.php,否则无法生效。

总结

通过注释掉 Nginx 的 error_page 设置,并在 Typecho 主题中添加 404.php 文件,就可以成功启用自定义 404 页面了。这样,不仅能够提升用户体验,还能让网站在 SEO 优化上更加完善。

© 版权声明
THE END
喜欢就支持一下吧
点赞 2 分享 收藏
评论
所有页面的评论已关闭
易航博客