![是否可以在 apache 中阻止所有以特定 URL 结尾的请求](https://linux22.com/image/720154/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%9C%A8%20apache%20%E4%B8%AD%E9%98%BB%E6%AD%A2%E6%89%80%E6%9C%89%E4%BB%A5%E7%89%B9%E5%AE%9A%20URL%20%E7%BB%93%E5%B0%BE%E7%9A%84%E8%AF%B7%E6%B1%82.png)
是否可以阻止 apache 中以特定 url 结尾的请求,例如我必须阻止所有以 ?wsdl 结尾的请求。
答案1
您的例子很容易解决,您可以使用mod_rewrite
它来实现这一点:
RewriteCond %{QUERY_STRING} "^wsdl.*$"
RewriteRule "" "-" [F]
wsdl
这将阻止以第一个查询参数名称开头的任何请求。
为了仅阻止wsdl
查询字符串中任何位置的参数,正则表达式会稍微复杂一些:
RewriteCond %{QUERY_STRING} ".*(?:^|&)wsdl(?:=|&|$)"
RewriteRule "" "-" [F]
此配置适用于
- ?wsdl
- ?wsdl=某物
- ?s1=s2&wsdl
- ?s1=s2&wsdl=某物
- ?s1=s2&wsdl&s3=s4
我使用过的资料来源: