gpt4 book ai didi

linux - Nginx 在重定向时复制查询字符串

转载 作者:太空狗 更新时间:2023-10-29 11:12:51 24 4
gpt4 key购买 nike

我正在尝试重定向来自包含“www.”的网址的所有流量。到不包含它的类似 url,但是当我这样做时,Nginx 在 url 的末尾附加了一个重复的查询字符串。

例如,用户输入:

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

他们被重定向到:

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

这是我的配置:

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

server {
server_name website.com
# actual server stuff
}

我试过附加一个“?”到“request_uri”部分之后重定向的末尾,因为我读过的内容应该有效,但没有。

最佳答案

您的配置无效。您似乎混淆了 returnrewrite 的语法。参见 this document了解详情。

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

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

rewrite 指令将附加查询字符串,除非附加了 ?。可以使用 rewrite 指令来完成相同的功能,但在这种情况下,它就有点矫枉过正了。

由于您的配置无效,nginx 仍在使用较早的配置运行,可能是较早的实验将 $request_uri 置于 rewrite指令,因此是双查询字符串。

关于linux - Nginx 在重定向时复制查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36204244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com