在重新启动后,我正在用nginx重写URL。在旧网站中,我在URL中有查询参数来过滤内容,例如
http://www.example.com/mypage.php?type=4
新页面没有这些参数。我想删除它们并将URL重写到主页,这样我就可以得到:
http://www.example.com/mypage/
我在nginx中的重写规则是:
location ^~ /mypage.php {
rewrite ^/mypage.php$ http://www.example.com/mypage permanent;
}
但是对于这个规则,参数仍然是附加的。我认为$
会阻止nginx处理更多的值...有什么想法吗?所有其他问题都涉及如何添加参数-我只想删除我的:)
发布于 2015-01-14 10:29:13
从URL中删除参数,在本例中为coupon=xxx
if ($query_string ~ "^(.*)coupon=(.*)$") {
rewrite ^(.*)$ $uri? permanent;
}
请注意,如果语句匹配,这将删除所有参数。$uri
是不带参数的原始请求。
发布于 2019-04-22 15:27:36
如果要从url中删除指定参数,
# in location directive:
if ($request_uri ~ "([^\?]*)\?(.*)unwanted=([^&]*)&?(.*)") {
set $original_path $1;
set $args1 $2;
set $unwanted $3;
set $args2 $4;
set $args "";
rewrite ^ "${original_path}?${args1}${args2}" permanent;
}
然后访问your_site.com/a=1&unwanted=2&c=3
step1。服务器给出302响应,指示url匹配。
step2。客户端使用新的url重新发送请求(删除参数)
发布于 2015-02-27 22:35:26
尝试将位置中的$args
变量设置为空。
set $args '';
https://stackoverflow.com/questions/9641603
复制相似问题