这两个指令与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
(全文完)