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

mod_rewrite配置问题:非目录非文件请求重定向到404页

现有配置完全不符合需求,存在三处核心问题:

  • 条件逻辑倒置:现有规则的判断条件是「请求对应真实存在的文件 或 真实存在的目录」,反而会把合法的可访问资源重定向到404,和你要的「非文件、非目录请求跳404」的需求完全相反。
  • 匹配范围不全:RewriteRule ^(.*)/$ 仅匹配路径末尾带斜杠的请求,不带末尾斜杠的异常请求完全不会命中规则,无法覆盖所有场景。
  • 替换段配置冗余:返回404状态码不需要指定跳转路径,你写的/没有实际作用。

调整后的正确配置:

RewriteEngine On
# 匹配非真实存在的文件
RewriteCond %{REQUEST_FILENAME} !-f
# 同时匹配非真实存在的目录
RewriteCond %{REQUEST_FILENAME} !-d
# 所有符合条件的请求直接返回404状态码
RewriteRule ^ - [R=404,L]

如果需要使用自定义的404页面,可新增ErrorDocument配置,示例如下(假设自定义页面为根目录下的404.html):

ErrorDocument 404 /404.html
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ - [R=404,L]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:54:03