You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置网站404错误页遇异常:ErrorDocument触发额外404错误求助

解决ErrorDocument 404配置后出现双重404的问题

你遇到的这个错误核心原因很明确:服务器在尝试加载你指定的404错误页时,发现这个错误页本身也找不到,所以才会同时抛出两个404提示。下面是一步步排查和解决的方案:

1. 先直接验证404错误页的可访问性

先别通过访问不存在的页面测试,直接在浏览器里输入你的域名+/404-page.php(比如https://yourdomain.com/404-page.php),看看能不能正常打开:

  • 如果直接访问也显示404,那问题就出在这个文件本身,和.htaccess的配置关系不大,优先看下面的路径、大小写和权限问题。
  • 如果直接访问能正常显示,再回到.htaccess的配置排查。

2. 核对文件名、路径与大小写

  • Linux主机的文件系统是大小写敏感的,一定要确保404-page.php的文件名和你在.htaccess里写的完全一致,比如不能把404-page.php写成404-Page.php或者404page.php。
  • 确认文件位置:你的.htaccess和404-page.php都在public_html目录下,那/404-page.php这个绝对路径是正确的(因为/对应网站根目录,也就是public_html)。如果文件放在子目录里,路径也要对应调整。

3. 检查文件权限

服务器无法读取文件也会导致404,建议:

  • 把404-page.php(包括你测试用的HTML文件)的权限设置为644(所有者可读可写,组和其他用户只读),这是PHP/HTML文件的标准权限。
  • 如果你的404页面引用了header.php和footer.php,也要检查这两个文件的权限和路径是否正确。可以先简化404页面的代码,去掉require语句,只保留静态内容测试:
<h2>404 - Page not found</h2>
<p>The page you are looking for was not found, if this is an error please contact administration.</p>

如果简化后能正常显示,说明问题出在header.php或footer.php的路径或权限上。

4. 验证.htaccess是否被服务器识别

有些主机可能默认禁用了.htaccess的某些功能,或者.htaccess本身没被正确识别:

  • 先测试.htaccess是否生效:在文件里加一行简单的重定向规则,比如:
Redirect /test-redirect.html /index.html

然后访问/test-redirect.html,如果能跳转到首页,说明.htaccess是有效的;如果没反应,可能是主机不支持.htaccess,或者需要联系主机商开启AllowOverride配置(这个是服务器端的设置,虚拟主机用户自己改不了)。

  • 另外,确认.htaccess的文件名是正确的:必须是.htaccess(前面有个英文点),有些FTP工具会隐藏这类隐藏文件,上传时要确保文件被正确传输。

5. 尝试调整ErrorDocument的路径格式

如果上面的步骤都没问题,可以试试修改路径的写法:

  • 用相对路径(去掉前面的/):
ErrorDocument 404 404-page.php
  • 或者用完整的URL(不推荐,因为会触发302重定向,但可以用来测试):
ErrorDocument 404 https://yourdomain.com/404-page.php

6. 查看服务器错误日志

如果还是解决不了,去主机的控制面板(比如cPanel)里找“错误日志”工具,日志里会有详细的报错信息,比如明确说明是“File not found: /home/yourusername/public_html/404-page.php”还是“Permission denied”,这能帮你精准定位问题。

内容的提问来源于stack exchange,提问作者UnknownPerson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:12:22