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

htaccess重写规则生效后配置ErrorDocument错误页面文件返回500错误问题

问题根因

现有重写规则会拦截所有不存在的文件/目录请求,转发到/crud/views/pages/路径下。当触发404/500错误时,Apache请求/404.html的动作会被规则拦截,如果根目录不存在该文件,就会触发无限内部重定向,最终返回500错误。

解决方案

根据你的404.html存放位置选择对应修改方案:

  • 方案1:404.html存放在网站根目录
    在现有重写规则前添加跳过错误页重写的规则,完整配置如下:
    <IfModule mod_rewrite.c>
            RewriteEngine On
            # 跳过404错误页的重写逻辑
            RewriteRule ^404\.html$ - [L]
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(.*)$ /crud/views/pages/$1 [L]
    </IfModule>
    ErrorDocument 500 /404.html
    ErrorDocument 404 /404.html
    
  • 方案2:404.html存放在/crud/views/pages/目录下
    直接修正ErrorDocument的文件路径即可,完整配置如下:
    <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(.*)$ /crud/views/pages/$1 [L]
    </IfModule>
    ErrorDocument 500 /crud/views/pages/404.html
    ErrorDocument 404 /crud/views/pages/404.html
    

验证注意事项

修改完成后清理浏览器缓存,再次访问不存在的路径验证效果,确保404.html文件权限设置为Apache进程可读,常规权限值为644即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:27:04