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

添加Rewrite Engine至.htaccess后404页面失效问题排查

问题解决:添加Rewrite规则后404页面失效的修复方案

你的问题出在第一条重写规则的逻辑上:原规则会把所有不带点的不存在请求强制重写成.php后缀,哪怕对应的.php文件也不存在。这种情况下,服务器会尝试加载这个不存在的PHP文件,返回的是PHP处理器的“file not found”错误,而非Apache的标准404响应,导致你设置的ErrorDocument无法触发。

修改后的.htaccess内容如下:

ErrorDocument 404 /404.php

RewriteEngine On

# 优先处理域名301重定向
RewriteCond %{HTTP_HOST} ^grandviewexteriorsystems.com [NC]
RewriteRule ^(.*)$ http://www.grandviewexteriorsystems.com/$1 [L,R=301,NC]

# 仅当目标.php文件存在时才重写无后缀请求
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

修改说明:

  • 调整规则顺序:把域名301重定向放在最前面,确保所有请求先完成域名跳转,再处理后缀重写,避免逻辑冲突。
  • 新增存在性校验:添加RewriteCond %{REQUEST_FILENAME}.php -f条件,只有当要重写的目标.php文件确实存在时,才执行重写操作。这样请求不存在的页面时,会直接触发Apache的404机制,正常调用你的404.php页面。

另外可以检查下public_html目录下的404.php文件权限,确保设置为644,让服务器能正常读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 09:15:13