gpt4 book ai didi

nginx - 在 nginx 重写中使用 $args 导致重复的 URL 参数

转载 作者:行者123 更新时间:2023-12-04 17:09:42 40 4
gpt4 key购买 nike

在我的位置规则之一中,我试图重写 URL:

rewrite ^ $topicredirecturi?$args permanent;
$topicredirecturi在映射文件中计算,例如映射 URL,例如
http://www.topics.com/companies/cit-group-inc/index.html


http://www.topics.com/companies/cit_group_inc/index.html

当我使用 URL 参数发出请求时,例如:
http://www.topics.com/companies/cit-group-inc/index.html?rss=1

我得到以下带有重复参数的重写 URL:
http://www.topics.com/companies/cit_group_inc/index.html?rss=1&rss=1

同样,网址
http://www.topics.com/companies/cit-group-inc/index.html?rss=1&bob=2

被重写为
http://www.topics.com/companies/cit_group_inc/index.html?rss=1&bob=2&rss=1&bob=2

有谁知道这里会发生什么?

最佳答案

如果重写的 URL 中有其他 get 参数,Nginx 会自动附加查询字符串。如果您要添加 $args你自己应该添加一个 ? (问号)在重写的 URL 末尾,以避免出现重复的参数。

使用查询字符串进行重定向的正确方法是:

rewrite ^(...)$ /destination$is_args$args? [permanent|redirect];

哪里 $is_args包含 ?如果查询字符串不为空,并且 $args是查询字符串本身;最后的问号请求 nginx 不再添加查询字符串。

关于nginx - 在 nginx 重写中使用 $args 导致重复的 URL 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23635203/

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