我正在编写一个应用程序来提供对许多旧版应用程序的只读访问权限。我想使用 Nginx 从旧 URL 重定向到单个新 URL,如下所示:
旧网址:http://oldsite.com/?value=something
新网址:http://newsite.com/?value=something&source=oldsite
这是我的 Nginx 服务器块oldsite.com
:
server {
listen 80;
listen 443 ssl;
server_name oldsite;
return 301 $scheme://newsite.com$request_uri&source=oldsite;
}
这很有效 - 输入oldsite.com
URL 后您就会被重定向到正确的newsite.com
URL。
但我对以下行为感到困惑:
http://oldsite.com
在浏览器中输入
我希望被重定向至http://newsite.com&source=oldsite
。
相反,我被重定向到http://newsite.com
。
我认为可能发生的情况是这样的:当为$request_uri
空或 null 时,Nginx 停止处理字符串并返回其所有内容。
虽然这是我想要的,却不是我期望的。我在 Nginx 文档中找不到任何关于此内容的提及,而且我不想依赖未记录的“功能”。
谁能解释一下这里发生了什么?