过滤链接中的?
在nginx的配置文件中写入
location / {
# 当访问的url中含有/%#时返回404
if ($request_uri ~* "/%#") {
return 404;
}
#当访问url的后面带有?的链接 返回404
if ($request_uri ~* ^/a/m/(.*)\.html\?(.*)$) {
return 404;
}
}
nginx 正则表达式
=开头表示精确匹配,如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。
^~ 开头表示uri以某个常规字符串开头,不是正则匹配
~ 开头表示区分大小写的正则匹配;
~* 开头表示不区分大小写的正则匹配
.* .匹配任意字符,*匹配数量0到正无穷;
\. \转义,匹配.
/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到