DDR爱好者之家 Design By 杰米

nginx url自动加斜杠问题及301重定向,URL指向一个目录并且在最后没有包含斜杠,会301重定向跳转,添加server_name或修改访问重定向。

nginx url自动加斜杠问题及301重定向

内部服务器使用nginx,做网站测试之用。不同域名使用端口号区分,如www用默认的80端口,其它域名用81,82...

有时直接在地址栏敲网址,会发现跳转到localhost.localdomain的情况。

比如858端口下有个hx目录,这样正常访问:http://192.168.1.158:858/hx/

但如果少打了一个/,如:http://192.168.1.158:858/hx

就会自动跳转到:http://localhost.localdomain:858/hx/

经分析是nginx自动加斜杠的问题:

在某些情况下(具体可参考 wiki.nginx.org),Nginx 内部重定向规则会被启动。

例如,当URL 指向一个目录并且在最后没有包含“/”时,Nginx 内部会自动的做一个 301 重定向,这时会有两种情况:

1、server_name_in_redirect on(默认),URL 重定向为: server_name 中的第一个域名 + 目录名 + /;

2、server_name_in_redirect off,URL 重定向为: 原 URL 中的域名 + 目录名 + /。

If server_name_in_redirect is on, then Nginx will use the first value of the server_name directive for redirects. If server_name_in_redirect is off, then nginx will use the requested Host header.

原配置,没有加server_name:

server {
listen 858;
}

修改后:

server {
listen 858;
server_name 192.168.1.158;
}

或:

server {
listen 858;
server_name_in_redirect off;
}

此问题解决。访问http://192.168.1.158:858/hx可以正常跳转到http://192.168.1.158:858/hx/了。

分析:

服务器的hostname是localhost.localdomain,当没有设置server_name时,server_name就变成hostname了。

默认又是server_name_in_redirect on,因此原配置访问hx目录时,会重定向到localhost.localdomain/hx/了。

第一种修改方法,加了server_name,那就跳转到server_name + 目录名 + /,对了。

第二种修改访问,重定向为:访问的URL+目录名+/,也对了。

泛解析配置:

server{
listen 80;
server_name _;
}

如果有个phpcheck目录,有人不小心链了http://www.plchome.org/phpcheck这样一个链接,就会重定向到http://_/phpcheck/。

所以这种在没法指定server_name的情况下,要加上server_name_in_redirect off。

server{
listen 80;
server_name _;
server_name_in_redirect off;
}

这时,访问www.plchome.org/phpcheck,就会自动并且正确的跳转到www.plchome.org/phpcheck/了。

晚上升级一台服务器的nginx版本时,在changes里看到:

Changes with nginx 0.8.48 03 Aug 2010
*) Change: now the "server_name" directive default value is an empty 
name "".
Thanks to Gena Makhomed.
*) Change: now the "server_name_in_redirect" directive default value is 
"off".

从nginx 0.8.48起server_name_in_redirect已经默认为off了,不再需要指定了。

以上所述是小编给大家介绍的nginx url自动加斜杠及301重定向的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米

P70系列延期,华为新旗舰将在下月发布

3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。

而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?

根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。