我正在尝试从下面的网址中删除参数“?status = OK”。
当前:
https://example.com/download/d2e9cc4f-f7df-4ebd-a0e4-7836c8013075?status=OK
目标:
https://example.com/download/d2e9cc4f-f7df-4ebd-a0e4-7836c8013075
Nginx:
location /download/ {
rewrite ^(/download/.*)?$ $1 permanent;
}
不幸的是,以上操作无效。
答案 0 :(得分:1)
查询字符串不是location
和rewrite
语句用于测试正则表达式的规范化URI的一部分。
您可以使用if ($args) { ... }
检查是否存在任何参数,或者仅使用status=
检查是否存在if ($arg_status) { ... }
参数。
例如:
location /download/ {
if ($args) { return 301 $uri; }
... # do something with the corrected URI
}
rewrite
语句还能够使用rewrite ^(.*)$ $1? permanent
删除查询字符串,但是return
语句似乎更简单。关于if
的使用,请参见this caution。