首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除nginx重写中的参数

删除nginx重写中的参数
EN

Stack Overflow用户
提问于 2012-03-10 06:01:43
回答 3查看 48.2K关注 0票数 23

在重新启动后,我正在用nginx重写URL。在旧网站中,我在URL中有查询参数来过滤内容,例如

代码语言:javascript
复制
http://www.example.com/mypage.php?type=4

新页面没有这些参数。我想删除它们并将URL重写到主页,这样我就可以得到:

代码语言:javascript
复制
http://www.example.com/mypage/

我在nginx中的重写规则是:

代码语言:javascript
复制
location ^~ /mypage.php {
    rewrite ^/mypage.php$ http://www.example.com/mypage permanent;
}

但是对于这个规则,参数仍然是附加的。我认为$会阻止nginx处理更多的值...有什么想法吗?所有其他问题都涉及如何添加参数-我只想删除我的:)

EN

回答 3

Stack Overflow用户

发布于 2015-01-14 10:29:13

从URL中删除参数,在本例中为coupon=xxx

代码语言:javascript
复制
if ($query_string ~ "^(.*)coupon=(.*)$") {
    rewrite ^(.*)$ $uri? permanent;
}

请注意,如果语句匹配,这将删除所有参数。$uri是不带参数的原始请求。

票数 13
EN

Stack Overflow用户

发布于 2019-04-22 15:27:36

如果要从url中删除指定参数,

代码语言:javascript
复制
#  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重新发送请求(删除参数)

票数 6
EN

Stack Overflow用户

发布于 2015-02-27 22:35:26

尝试将位置中的$args变量设置为空。

代码语言:javascript
复制
set $args '';
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9641603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档