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

.htaccess配置的404错误页面无法正常显示问题排查

排查404页面仅显示文件名的问题

我来帮你排查下这个问题——这种只显示文件名、不渲染404页面内容的情况,通常是这几个常见原因导致的:

  • Apache未正确配置PHP处理规则
    如果你的服务器没加载PHP模块,或者没有配置让Apache识别并执行.php文件,那么服务器只会把PageNotFound.php当作纯文本文件返回,自然只会显示文件名。你可以检查Apache的主配置文件(比如httpd.conf):

    • 确认存在LoadModule php_module相关的加载指令(不同PHP版本写法可能略有不同,比如LoadModule php8_module)
    • 确认有AddType application/x-httpd-php .php这类指令,告诉Apache把.php文件当作PHP脚本处理
  • .htaccess中的404规则有误
    首先确保你的ErrorDocument规则写法正确:

    ErrorDocument 404 /PageNotFound.php
    

    注意路径要以/开头(表示网站根目录),如果省略斜杠写成ErrorDocument 404 PageNotFound.php,在根目录下可能暂时没问题,但如果服务器的路径解析逻辑异常,也可能导致无法正确定位并执行文件。另外,还要检查.htaccess里有没有其他Rewrite规则覆盖了这个404配置,比如某些重写规则可能把错误请求的处理逻辑改变了。

  • 服务器禁用了.htaccess的生效权限
    Apache的主配置文件里,对应网站根目录的<Directory>块中,AllowOverride参数决定了.htaccess是否能生效。如果设置为AllowOverride None,那么.htaccess里的所有规则都会被忽略,服务器可能会使用默认的404响应设置,刚好默认指向了你的PageNotFound.php但没执行它。你需要把AllowOverride设置为All或者至少FileInfo,才能让ErrorDocument规则生效。

  • 文件权限配置错误
    如果PageNotFound.php的文件权限设置不当,服务器可能没有权限读取或执行这个文件。建议把PHP文件的权限设置为644(所有者可读可写,组和其他用户只读),网站根目录的权限设置为755,确保Apache进程能正常访问该文件。

  • 浏览器缓存干扰
    有时候浏览器会缓存旧的错误响应,导致你看不到最新的404页面。可以尝试清空浏览器缓存,或者用隐私/无痕模式访问不存在的页面,验证是否是缓存问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:50:14