NGINX重定向

语法:rewriteregexreplacement[flag];

默认值:

使用:

Serverlocation,if

server定义一个站点,location定义站点目录位置

如果指定的正则表达式能匹配URI,此URI将被replacement参数定义的字符串改写。

rewrite指令按其在配置文件中出现的顺序执行。flag可以终止后续指令的执行。

如果replacement的字符串以http://https://开头,nginx将结束执行过程,

并返回给客户端一个重定向。

可选的flag参数可以是其中之一:

last

停止执行当前这一轮的ngx_http_rewrite_module指令集,然后查找匹配改变后URI的新location;

break

停止执行当前这一轮的ngx_http_rewrite_module指令集;

redirect

在replacement字符串未以http://https://开头时,使用返回状态码为302的临时重定向;

permanent

返回状态码为301的永久重定向。

完整的重定向URL将按照请求协议($scheme)、server_name_in_redirect指令和port_in_redirect指令的配置进行补全

例子:

Nginx结合php是靠fastcgi,修改nginx的配置文件,让nginx可以调用php页面。

122029895.png

location/{

roothtml;

indexindex.phpindex.htmlindex.htm;

}

1,访问站点主目录下的任何jpg的请求都被定向到主页面

rewrite"^/.*\.jpg$"/index.php;

122051106.png

122051422.png

2,Rewrite"^/(.*)/(.*)\.bmp$"/$1/$2.jpg访问站点目录下的任何目录下的任何以.bmp结尾的图片,都要被重定向到站点目录下的相同目录下的任何以.jpg结尾的文件。

122111662.png

3,访问站定主目录下的任何文件,将被重定向到另外一台web服务器上的站点主目录下的index.php目录里面。

http://192.168.2.100/1.bmp

http://192.168.2.100/index.php---->http://192.168.20.100/index.php

Rewrite/.*http://192.168.20.100/index.php;

122127226.png

4,将访问www.abc.com/forum重定向到www.abc.com/bbs

域名访问修改host文件

rewrite"/froum/*"/bbs;

122145632.png

122145596.png

server{

...

rewrite^(/download/.*)/media/(.*)\..*$$1/mp3/$2.mp3last;

rewrite^(/download/.*)/audio/(.*)\..*$$1/mp3/$2.ralast;

return403;

...

}

5,实现域名跳转

比如访问www.abc.com站点下的任何文件或目录---》,都定向到www.tyedus.com

http://www.abc.com

"/*"http://www.tyedus.com