首页 > 精选文章 > Web服务器 > 正文

nginx的url是目录时到底会不会自动加斜线

看到网上很多人都再说,在访问带目录的url时,nginx不会自动加斜线,有的人加了rewrite来实现,有的人设置 server_name_in_redirect off来实现。我测试了下带目录时的情况,发现斜线是可以自动加上的,其他情况我测试了后再来补全吧。网上的文章不要随便拿来用,至少也要先测试下,毕竟nginx也是在不断发展。bug也一定在不断被修复。

经过进一步测试,发现在访问带目录的url时,nginx会自动加斜线,其实是在内部自动做了一个301跳转,加了斜线。可以用httpwatch,或者 curl -I http://.../dir来测试。

这一切都跟这些有关:

在某些情况下(具体可参考 wiki.nginx.org),Nginx 内部重定向规则会被启动,例如,当 URL 指向一个目录并且在最后没有包含“/”时,Nginx 内部会自动的做一个 301 重定向,这时会有两种情况:
1、server_name_in_redirect on(默认),URL 重定向为: server_name 中的第一个域名 + 目录名 + /;
2、server_name_in_redirect off,URL 重定向为: 原 URL 中的域名 + 目录名 + /。

以上信息应该是在做rewrite时多注意,servername和alias。可见,nginx现在是会自动加斜线的。欢迎大家也都发表下自己的看法。

  • 上一篇:一个小公司老板的日常管理
  • 下一篇:前腾讯工程师郭欣创业“监控宝”
  • 了解这些字:的的意思 是的意思 目的意思 录的意思 时的意思 到的意思 底的意思 会的意思