Nginx 服务中访问目录的URL不加正斜杠,会301跳转详解

2019-12-25 0 By admin

如果你的网站是使用 Nginx 服务搭建的web 服务器;你可以检查一下在访问一个目录资源时,如果没有添加正斜杠(/)结尾;Nginx 配置的301跳转是否可以正常的访问。

一、过程详解

  1. Nginx 服务中配置指令 absolute_redirect 用来配置重定向的方式。默认开启,为绝对重定向;否则为相对重定向。(假装很明白的样子)
  2. 当我们访问URI时;如果访问资源为一个目录,并且URI没有以正斜杠(/)结尾;Nginx 服务就会返回一个301跳转,目标地址就是要加一个正斜杠。
  3. 在跳转过程中 server_name_in_redirect 指令设置跳转目标的域名,默认配置为on ,从请求的 header 中获取。否则从配置文件中的 server_name 中获取。
  4. 在跳转过程中 port_in_redirect 指令设置跳转目录的端口,默认值为on,从 nginx 配置文件中的Listen 端口获取。否则从接受到的请求头信息(header)中获取。

通过上面的说明,如果你的Nginx 服务设置为反向代理,并且后端的WEB服务监听的不是80和443端口的话;在访问目录时,就可以根据上面的说明,检查一下。
Nginx 官方指令列表 :http://nginx.org/en/docs/dirindex.html