今天开发碰到一个问题,其实之前就有这个问题,但是一直都没去关注,今天测试碰到了就解决一下。

问题情况:
Nginx URL后面不加斜杠301重定向

当我请求 http://admindev.jingruiauto.com/store/views/basedata 的时候,浏览器自动跳转到了 http://admindev.jingruiauto.com:8100/store/views/basedata/,我看了一下浏览器的请求流程,在请求 http://admindev.jingruiauto.com/store/views/basedata 发生了 301 的跳转,自动加上了 8100 端口。

主要原因:

当请求URL后面没有 / ,Nginx 目录中没有对应的文件,就会自动进行 301 并加上 /.

解决方式:

在 Nginx 的配置文件中,加上 port_in_redirect off; 如果是 Nginx 版本号大于 1.11.8,可以考虑用 absolute_redirect off;

注意:
在用 Chrome 的时候,一定要先清除缓存在测试,Chrome 会自动将 301 缓存在本地。