从URL

2017-08-08 74 views
1

删除特定的查询参数我有一个网址,如:从URL

http://www.example.com/something?abc=one&def=two&unwanted=three 

我想删除URL参数不必要的和保持URL的其余部分完好无损,它应该是这样的:

http://www.example.com/something?abc=one&def=two 

这个特定的参数可以在URL的任何地方相对于其他参数。

这个问题看起来很简单,但我尝试了很多次,但最终失败了。

回答

1

整个查询字符串存在于$args变量或$request_uri变量的末尾。您需要构造一个正则表达式来捕获您希望删除的部分前后的所有内容。

例如:

if ($request_uri ~ ^(/something\?.*)\bunwanted=[^&]*&?(.*)$) 
{ 
    return 301 $1$2; 
} 

参见this document更多,和this caution对使用​​if