rewrite指令
该指令通过正则表达式的使用来改变URI.可以同时存在一个或者多个指令,按照顺序一次对URL进行匹配和处理。该指令可以在server块后者location块中配置 语法: 指令语法:rewrite regex replacement [flag]; rewrite是实现URL重定向的重要指令, regex:用来匹配URI的正则表达式; replacement:匹配成功后用来替换URI中被截取内容的字符串,默认情况如果该字符串包含“http://”、"https://"开头,则不会继续向下对URI进行其他处理。直接返回重写的URI给客户端 flag:用来设置rewrite对URI的处理行为,包含如下数据:
标记符号 说明 last 终止在本location块中处理接收到的URI,并将此处重写的URI作为新的URI使用其他location进行处理。(只是终止当前location的处理) break 将此处重写的URI作为一个新的URI在当前location中继续执行,并不会将新的URI转向其他location。 redirect 将重写后的URI返回个客户端,状态码是302,表明临时重定向,主要用在replacement字符串不以“http://”,“ https://”或“ $scheme” 开头; permanent 将重写的URI返回客户端,状态码为301,指明是永久重定向;
https://"开头,则不会继续向下对URI进行其他处理。直接返回重写的URI给客户端。 结论就是: rewrite 跳转的http路由一定要写在 跳转到的路由https的下面 。不然匹配到 第一个路由 跳转也是打断,则不会继续向下对URI进行其他处理。直接返回重写的URI给客户端。