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

Apache2环境下.htaccess的User-Agent过滤规则仅对站点根目录生效,子页面无效的解决求助

Apache2环境下.htaccess的User-Agent过滤规则仅对站点根目录生效,子页面无效的解决求助

大家好,我最近在配置Apache2服务器的.htaccess文件时碰到了个头疼的问题,想请各位帮忙看看怎么解决。

我本来想实现的效果是:阻止所有User-Agent为空或者仅为“-”的请求,但允许服务器自身发起的请求(通过匹配服务器的公网IP)。于是我写了下面的Rewrite规则:

RewriteCond %{HTTP_USER_AGENT} "^$|^-$" [NC]
RewriteCond %{REMOTE_ADDR} "!^x\.x\.x\.x$" <- 这里是服务器的公网IP
RewriteRule ^.* - [F,L]

结果测试的时候发现,这条规则只对站点根目录生效:

  • 用curl -k -A "" https://example.com测试,能正常返回403 Forbidden,符合预期
  • 但用curl -k -A "" https://example.com/someradompage测试时,如果页面存在就直接返回内容,不存在就返回404 Not Found,完全没触发403的拦截规则

我试了好几种调整RewriteRule匹配模式的方式都没成功,想请教下各位,怎么修改才能让这条User-Agent的过滤规则对站内所有页面(不管是存在的还是不存在的路径)都生效呢?

备注:内容来源于stack exchange,提问作者js1018

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:38:14