解决nginx 301跳转url最后带/问题
前言
1、Nginx 服务中配置指令 absolute_redirect 用来配置重定向的方式。默认开启,为绝对重定向,url最后会加上/;否则为相对重定向。
2、当我们访问URI时;如果访问资源为一个目录,并且URI没有以正斜杠(/)结尾;Nginx 服务就会返回一个301跳转,目标地址就是要加一个正斜杠。
例如:
3、在跳转过程中 port_in_redirect指令设置跳转目录的端口,默认值为on,从 nginx 配置文件中的Listen端口获取。否则从接受到的请求头信息(header)中获取;如果是 Nginx 版本号大于 1.11.8,可以考虑用 absolute_redirect off;
解决方案
添加absolute_redirect off;只有1.11.8 才支持,低版本不需要配置
server_name_in_redirect指令是只跳转的URL的域名是用配置文件nginx.conf中的配置的
设置server_name_in_redirect 为on时:
访问https://192.168.137.3/download 会跳转到https://10.1.1.1:2443/download/
java
server_name_in_redirect off;
port_in_redirect指令是只跳转的URL的端口是用配置文件nginx.conf中的配置的port,还是用请求中获取。默认值为on,即配置文件定义。
java
port_in_redirect off;