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
相关产品推荐
相关产品推荐

