一、背景:

我们在访问nginx代理下的项目前端页面时,经常会有访问链接最末尾带不带'/'的问题,当我们访问http://xxxx/home时,如果匹配不到location,会自动加上端口port以及最末尾的'/'重定向到http://xxxx:port/home/。

二、问题描述:

在使用的过程中,其实我们很多时候不希望重定向后会带上端口号进行重定向,我们仅仅是希望加上末尾的'/',因此引发了问题。

三、解决方案:

经过查找,找到了如下两个配置:

1、absolute_redirect:

绝对重定向开关,默认为开启;关闭后,则响应头Location的URL即是重定向url 没有域名(IP)和端口号, 而是直接采用相对路径进行重定向,如下:

            开启时,http://xxxx/home会重定向到http://xxxx:port/home/

关闭后,http://xxxx/home请求的响应头Location的变成了相对路径/home/

修改nginx配置如下,经验证,问题解决。

[转帖]Nginx中absolute_redirect、port_in_redirect配置简述_响应头


  2、port_in_redirect:

             重定向是否带上端口的开关;关闭后, 则响应头Location的URL即是重定向url 没有端口号

             修改nginx配置如下,经验证,问题也能解决:

[转帖]Nginx中absolute_redirect、port_in_redirect配置简述_端口号_02