【发布时间】:2023-04-02 03:05:01
【问题描述】:
我需要一个重写条件来返回,例如403,当查询包含不在我的“白名单”字符类中的字符时。 查询以 q= 开头 所以我的尝试是:
RewriteCond %{REQUEST_URI} ^/generic/
RewriteCond %{REQUEST_METHOD} ^GET$
RewriteCond %{QUERY_STRING} q=[^a-z]+
RewriteRule .* - [F]
它几乎可以工作了。唯一的问题是,当查询以例如开头时“一个”, 以下任何被列入黑名单的字符都不会触发规则
例子:
q=abc -> rule does not match -> fine
q=Abc -> rule matches -> fine
q=abC -> rule does not match -> not fine
所以当禁止字符不是“q=”之后的第一个字符时,规则不起作用。
我错过了什么?有人可以帮我吗?
BR
【问题讨论】:
标签: apache .htaccess mod-rewrite url-rewriting