二、Nginx rewrite 介绍
-
主要功能是实现
URL地址重写,需要PCER的支持。 -
应用位置:
server、location、if中都可以。 -
语法:
rewrite是实现URL重写的关键指令,根据匹配URL部分的内容,重定向到目标URL上,结尾是flag标记。rewrite 匹配URL(正则表达式) 目标URL [flag]; -
flag标记符号Flag 标记符号 说明 last 本条规则匹配完成后,继续向下匹配新的 location URL 规则 break 本条规则匹配完成即终止,不再匹配后面的任何规则 redirect 返回 302 临时重定问,浏览器地址栏会显示跳转后的 URL 地址 permanent 返回 301 永久重定向,浏览器地址栏会显示跳转后的 URL 地址 -
last和break用来实现URL重写,浏览器地址栏的URL地址不变,单在服务器端访问的程序及路径发生了变化。 -
redirect和permanent用来实现URL跳转,浏览器地址栏会显示跳转后的URL地址。 -
redirect与permanent的区别-
3011永久重定向,浏览器会记住,比如a.com网站301到b.com网站,浏览器输入a.com时,就不请求a.com了,而是直接请求b.com了。 -
302临时重定向,浏览器不记住,比如a.com网站302到b.com网站,浏览器输入a.com时,还是请求a.com,根据a.com网站响应的location内容,再去请求b.com网址。
-
-
三、Nginx rewrite 案例使用
-
简单案例:访问
index.html重写到abc.html。-
nginx.conf:
server { listen 8081; server_name www.xyq.com; location / { root /usr/local/var/xyq; index index.html; } rewrite ^/index\.html /abc.html permanent; }配置好之后,执行
$ nginx -s reload,打开http://www.xyq.com:8081或http://www.xyq.com:8081/index.html,因为配置的主页面就是index.html所以可以不写。
-
-
简单案例:访问
index.html重写到百度。server { listen 8081; server_name www.xyq.com; location / { root /usr/local/var/xyq; index index.html; } rewrite ^/index\.html https://www.baidu.com permanent; }刷新 nginx 之后打开
http://www.xyq.com:8081就会跳转到百度。