我想清除一些垃圾请求,例如:
/path/to/%4444
/path/to/%44444445555555
/path/to/%44444445555555%6666666
我尝试了不同的设置,比如
location ^~ /path/to/[\%]([0-9] {3}) {
return 404;
}
或
location ^~ /path/to/([\%])([0-9] {3}) {
return 404;
}
但是nginx没有重启。感谢您的帮助。
答案 0 :(得分:0)
我不明白,为什么你的regexp中的[0-9]和{3}之间的空格,包括没有重启,因为:
使用“〜”(对于区分大小写的匹配)和“〜”(对于不区分大小写的匹配)运算符,将变量与正则表达式进行匹配。正则表达式可以包含可供以后在$ 1 .. $ 9变量中重用的捕获。负操作符“!〜”和“!〜”也可用。如果正则表达式包含“}”或“;”字符,则整个表达式应包含在单引号或双引号中。 (nginx_docs)
通过""逃避你的正则表达式。像
location "^~ /path/to/[\%]([0-9] {3})" {
return 404;
}