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

RewriteRule引发500内部服务器错误而非404问题求助

.htaccess 500错误(而非404)排查与修复

你的问题出在第二条重写规则上:当输入不存在的路径时,这条规则会把路径重写成对应的.php文件,但如果这个.php文件也不存在,服务器会反复执行重写逻辑,超出内部重写次数限制,最终返回500错误,而非预期的404。

具体修改方案

给第二条规则补充条件,确保只有对应的.php文件真实存在时才执行重写:

修改前的第二条规则块:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/?$ $1.php [QSA,L]

修改后的规则块:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/]*)/?$ $1.php [QSA,L]

原理说明

新增的RewriteCond %{REQUEST_FILENAME}.php -f会检查当前请求路径加上.php后缀后是否为真实存在的文件,只有满足该条件时才会触发重写。如果原路径和对应的.php文件都不存在,这条规则会直接跳过,服务器就能正常返回404未找到错误。

内容的提问来源于stack exchange,提问作者Péter Gergő

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:55:13