这两个指令与return等可以实现重定向的指令有联系,先来看看这两个指令的方法。
> port_in_redirect
语法:port_in_redirect on | off;
默认值:port_in_redirect on;
上下文:http, server, location
> server_name_in_redirect
语法:server_name_in_redirect on | off;
默认值:port_in_redirect on;
上下文:http, server, location
在Nginx中进行重定向时,有两种情况:
(1)重定向的URL以URI的形式给出。
(2)重定向的URL是完整的。
server_name_in_redirect off;
port_in_redirect off;
return /test 301;
输出结果是:
Location: http://10.2.3.4/test
其中,10.2.3.4是服务器IP地址。
如果port_in_redirect为off时,那么始终按照默认的80端口;如果该指令打开,那么将会返回当前正在监听的端口。
如果server_name_in_redirect为off时,那么将会以当前服务器的IP地址进行拼接URL;如果该命令为on,那么首先查找server_name,如果没有找到,查找请求头的HOST字段,如果没有,则以当前服务器的IP进行拼接。
如果是完整的URL,那么直接以给出的URL返回,而不做任何改动,不管上面两个指令的打开还是关闭。
server_name_in_redirect off;
port_in_redirect off;
return http://10.2.3.5/test 301;
将会返回:
Location: http://10.2.3.5/test
(全文完)
本文介绍了Nginx中port_in_redirect与server_name_in_redirect指令的使用方法及其对重定向的影响。具体包括如何指定重定向URL中的端口及服务器名称,并讨论了在不同设置下重定向行为的变化。
852

被折叠的 条评论
为什么被折叠?



