超简易步骤总结
- 在网站根目录创建一个好看的 404 页面(比如
404.html
)。 - 修改网站根目录下的
.htaccess
文件(Typecho 的核心配置文件)。 - 加一行代码告诉服务器遇到 404 错误时显示你的页面。
- 重启服务器让修改生效。
- 清理 Cloudflare 缓存(如果没生效的话)。
详细操作指南
第一步:创建自定义 404 页面
- 用 FTP 或服务器文件管理工具(如宝塔面板),进入你的 网站根目录(通常位置是
/var/www/html/
或/home/www/你的域名/
)。 - 新建一个文件,命名为
404.html
,内容如下(可直接复制修改):
✅ 完成后,确保通过浏览器能直接访问这个页面,比如:<!DOCTYPE html> <html> <head> <title>页面不见啦!</title> <style> body { text-align: center; padding: 50px; } h1 { color: red; } </style> </head> <body> <h1>⚠️ 404 错误</h1> <p>你访问的页面不存在,<a href="/">点此返回首页</a></p> </body> </html>
http://你的域名.com/404.html
(应该能正常打开)。
第二步:修改 Typecho 的 .htaccess
文件
- 在 网站根目录 找到
.htaccess
文件(如果没看到,可能是隐藏文件,需开启显示隐藏文件选项)。 - 用文本编辑器打开它,找到类似以下代码的部分(Typecho 的伪静态规则):
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] </IfModule>
- 在这段代码下方 添加一行:
✅ 修改后保存文件,整个文件看起来像这样:ErrorDocument 404 /404.html
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] </IfModule> ErrorDocument 404 /404.html
第三步:重启 Apache 服务器
修改配置后必须重启服务器才能生效:
- 如果你会用命令行:
sudo systemctl restart apache2
- 如果不会用命令行:
使用服务器管理面板(如宝塔面板)找到 Apache 服务,点击“重启”。
第四步:测试是否生效
- 打开浏览器,访问一个 肯定不存在的页面,比如:
http://你的域名.com/this-page-does-not-exist
(如果显示了你刚做的 404 页面,说明成功!) - 如果没生效:
- 检查
.htaccess
文件是否在正确位置。 - 检查
404.html
是否在网站根目录。 - 清理浏览器缓存,或尝试用无痕模式访问。
- 在 Cloudflare 后台 清理缓存(后面会教)。
- 检查
第五步:清理 Cloudflare 缓存
如果之前访问过错误页面,Cloudflare 可能缓存了旧结果:
- 登录 Cloudflare 后台 → 进入域名 → 点击 “缓存” → “配置” → “清除缓存”。
- 选择 “清除所有内容”,确认清理。
✅ 清理后再次测试访问不存在的页面。
常见问题解答
问题1:找不到 .htaccess
文件怎么办?
- 情况一:Typecho 未开启伪静态
登录 Typecho 后台 → 进入 “设置” → “永久链接” → 启用 “地址重写” → 保存后会生成.htaccess
文件。 - 情况二:服务器隐藏了文件
通过 FTP 或文件管理器开启“显示隐藏文件”选项(通常文件名以.
开头的文件是隐藏的)。
问题2:修改后还是显示默认的 Apache 404 页面?
-
检查 Apache 配置权限
确保服务器允许通过.htaccess
覆盖设置:
打开 Apache 主配置文件(如/etc/apache2/apache2.conf
),找到你的网站目录配置,确认有:<Directory /var/www/html> AllowOverride All # 必须是 All 而不是 None </Directory>
修改后需要重启 Apache。
-
检查文件路径是否正确
确保ErrorDocument 404 /404.html
中的路径/404.html
能直接通过浏览器访问。
问题3:想用 Typecho 主题的风格怎么办?
如果你希望 404 页面和网站主题风格一致:
- 在 主题文件夹(如
/usr/themes/default/
)新建一个404.php
文件。 - 内容参考主题的
index.php
,修改成 404 提示内容。例如:<?php $this->need('header.php'); // 加载主题头部 ?> <div class="error-page"> <h1>404 - 页面不存在</h1> <p><a href="<?php $this->options->siteUrl(); ?>">返回首页</a></p> </div> <?php $this->need('footer.php'); // 加载主题底部 ?>
- 在 Typecho 配置文件
config.inc.php
中添加:define('__TYPECHO_404_FILE__', '/usr/themes/你的主题名/404.php');
终极懒人方案:用 Cloudflare 直接改
如果不想碰服务器,可以用 Cloudflare Workers 强行替换所有 404 页面:
- 进入 Cloudflare 后台 → Workers → 创建 Worker。
- 复制以下代码到 Worker:
addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)); }); async function handleRequest(request) { const response = await fetch(request); if (response.status === 404) { return new Response( `<!DOCTYPE html> <html><body> <h1 style="color: red;">你访问的页面不存在!</h1> <a href="/">点此回家</a> </body></html>`, { status: 404, headers: { 'Content-Type': 'text/html' } } ); } return response; }
- 保存后,进入 规则 → 页面规则 → 创建规则:
- URL 模式:
*你的域名.com/*
- 设置:选择 Workers → 选择刚创建的 Worker。
- URL 模式:
总结
- 修改服务器配置:适合长期使用,且能完全自定义样式。
- 用 Cloudflare Workers:适合不想操作服务器的小白,但功能有限。
评论