[F]标志用于禁止访问并返回HTTP 403状态码,不重写不跳转,常用于屏蔽敏感文件、防盗链或拦截恶意请求,需配合[L]确保终止规则链。
![apache rewriterule 标志位 [f] 怎么用](https://img.php.cn/upload/article/001/242/473/178562486081406.png)
[F] 是 Apache mod_rewrite 中一个简单但关键的标志位,作用是禁止访问当前请求的 URL,并立即返回 HTTP 403 Forbidden 状态码。
它不跳转、不重写、不执行后续规则(配合 [L] 更稳妥),只是直接拒绝请求——适合用于屏蔽恶意路径、敏感文件、盗链资源或非法入口。
什么时候该用 [F]
- 想阻止用户访问某些特定后缀的静态资源(比如
.htaccess、.env、.log) - 防止图片被其他网站盗链
- 屏蔽含可疑参数或路径的请求(如
/wp-admin/非管理员访问) - 拦截已知攻击特征(如
eval(、base64_出现在 URL 中)
基本写法与要点
-
[F]必须写在RewriteRule的 flags 位置,例如:RewriteRule ^\.htaccess$ - [F]
-
-表示“不替换 URL”,只触发标志行为; - 单独用
[F]就够了,但建议加上[L]防止后续规则干扰:RewriteRule ^config\.php$ - [F,L]
实用例子
1. 禁止访问所有以点开头的隐藏文件
RewriteRule ^\.[a-zA-Z0-9]+ - [F,L]
匹配 .gitignore、.env、.htpasswd 等,返回 403。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
2. 防盗链:只允许本站引用图片
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yourdomain\.com/ [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F,L]注意:依赖 Referer 头,可被伪造,仅作基础防护。
3. 屏蔽含危险函数名的请求路径
RewriteCond %{REQUEST_URI} (eval|base64_decode|system|exec)\( [NC]
RewriteRule ^ - [F,L]对 URL 中出现这些关键词的请求直接拦截。
注意事项
-
[F]不会记录日志(除非你额外配置LogLevel alert rewrite:trace3); - 它返回的是标准 403 响应,不会触发自定义 403 页面(除非你用
ErrorDocument 403 /403.html显式指定); - 不要和
[R]混用——[F]本身已是终端响应,加[R]无效; - 在
.htaccess中使用时,确保AllowOverride允许FileInfo或All。
不复杂但容易忽略:[F] 的本质不是“重写”,而是“拦截”。用对了,就是一道轻量却有效的访问闸门。

















