Nginxredirect查询stringredirect

我正在尝试redirect来自包含“www”的url的所有stream量。 到类似的URL不包含它,但是当我这样做Nginx追加一个重复的查询string在URL的末尾。

例如,用户input:

www.website.com/test/?_id=12345 

然后他们被redirect到:

 website.com/test/?_id=12345?_id=12345 

这是我的configuration:

 server { server_name www.website.com; return 301 $scheme://website$request_uri permanent; } server { server_name website.com # actual server stuff } 

我曾尝试追加一个'?' 到'request_uri'部分之后的redirect结束,因为形成我已经读过的应该工作,但它没有。

你的配置无效。 你似乎已经混合了returnrewrite的语法。 详情请参阅此文件 。

$request_uri变量已经包含查询字符串,所以这应该与return

 return 301 $scheme://example.com$request_uri; 

rewrite指令将追加查询字符串,除非一个? 被追加。 有可能使用rewrite指令来完成相同的功能,但在这种情况下,这将是矫枉过正。

由于你的配置是无效的, nginx仍在运行一个早期的配置,可能是一个早期的实验,把$request_uri放在一个rewrite指令中,因此是双查询字符串。