首页 新闻 赞助 找找看

nginx如果想匹配到地址里的?号应该怎么写?

0
悬赏园豆:10 [已解决问题] 解决于 2023-05-07 19:42
复制代码
我知道一种写法,但只能匹配到紧跟域名后面的问号:如下

if ($request_uri ~* "^/\?"){
set $id $1;
rewrite "/" 404.html;
}

但下方这个链接经测试上面的不起作用

https://www.域名.com/mobile/index/show/catid/16/id/1388.html?en=20220821/767598517.love

我想检测地址中的问号,不管在哪里,只要检测到?直接跳转404,或者针对上面链接的也可以
 
复制代码
大da脸的主页 大da脸 | 初学一级 | 园豆:73
提问于:2022-09-01 09:08
< >
分享
最佳答案
0

location /test/ {
if ($args ~* "[\s\S]*.*[\s][\s\S]*$") { #判断url中的参数非空,还可以判断包含指定参数
return 501;
}
root e:\nginx-files;
index index.html;
}

收获园豆:10
mcc521 | 菜鸟二级 |园豆:212 | 2022-09-08 15:05
其他回答(1)
0

location ^ / * \ ? * $ { # 去掉^到$之间的空格
return 301 https://www.域名.com/404.html;
}

Adming | 园豆:119 (初学一级) | 2022-09-04 10:25

这是nginx的写法吗?

支持(0) 反对(0) 大da脸 | 园豆:73 (初学一级) | 2022-09-04 19:41

@大da脸: ( ⊙ o ⊙ )啊!对不起,走错片场了。

支持(0) 反对(0) Adming | 园豆:119 (初学一级) | 2022-09-04 19:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册