如何通过.htaccess拦截无User-Agent及Tachiyomi标识的访问
.htaccess 合并User-Agent拦截规则配置方案
你可以直接通过Apache mod_rewrite的[OR]条件标志,把两类拦截判定条件合并到同一条规则下,无需重复写拦截指令,配置更简洁执行效率也更高,完整配置如下:
# 开启重写引擎(如果你的配置里已经开启则无需重复添加) RewriteEngine On # 合并两类UA拦截规则 RewriteCond %{HTTP_USER_AGENT} ^-?$ [OR] RewriteCond %{HTTP_USER_AGENT} Tachiyomi [NC] RewriteRule ^ - [F,L]
规则说明
- 第一个
RewriteCond匹配无有效User-Agent的请求:覆盖UA为空、或者UA值为单个-的异常请求 - 第一个条件末尾的
[OR]标志代表逻辑或:即两个判定条件满足任意一个,就会触发后面的拦截动作 - 第二个
RewriteCond匹配UA中包含Tachiyomi标识的请求,末尾的[NC]标志代表不区分大小写,不管标识改成tachiyomi/TACHIYOMI等大小写变体都能命中 - 最后一行拦截规则的
[L]标志代表命中后直接终止后续重写规则执行,立刻返回403禁止访问状态码
扩展方式
如果后续需要新增其他UA拦截规则,只需要在现有条件前按顺序追加带[OR]标志的匹配条件即可,比如要同时拦截包含okhttp标识的UA,直接改成:
RewriteCond %{HTTP_USER_AGENT} ^-?$ [OR] RewriteCond %{HTTP_USER_AGENT} Tachiyomi [NC,OR] RewriteCond %{HTTP_USER_AGENT} okhttp [NC] RewriteRule ^ - [F,L]
注意:最后一个判定条件不要加
[OR]标志,否则会出现逻辑错误导致拦截失效。
内容的提问来源于stack exchange,提问作者Satyam
相关产品推荐
相关产品推荐

