Rewrite主要实现url地址重写,以及重定向,就是把传入web
的请求重定向到其他url
的过程
Rewrite使用场景 :
1、地址跳转,用户访问www.baimeidashu.com这个URL时,将其定向至一个新的域名mobile.baimeidashu.com
2、协议跳转,用户通过http协议请求网站时,将其重新跳转至https协议方式
3、伪静态,将动态页面显示为静态页面方式的一种技术,便于搜索引擎的录入,同时减少动态URL地址对外暴露过多的参数,提升更高的安全性。
4、搜索引擎,SEO优化依赖于url路径,好记的url便于支持搜索引擎录入
Rewrite标记Flag {#title-2}
rewrite
指令根据表达式来重定向URL
,或者修改字符串,可以应用于server,location,if
环境下,每行rewrite
指令最后跟一个flag
标记,支持的flag
标记有如下表格所示:
后跟一个flag
标记,支持的flag
标记有如下表格所示:
| flag | 作用 | |-----------|--------------------------| | last | 本条规则匹配完成后,停止匹配,不再匹配后面的规则 | | break | 本条规则匹配完成后,停止匹配,不再匹配后面的规则 | | redirect | 返回302临时重定向,地址栏会显示跳转后的地址 | | permanent | 返回301永久重定向,地址栏会显示跳转后的地址 |
|------------------| | last与break区别对比示例 |
redirector: 临时跳转
permanent: 永久跳转
redirect: 每次请求都会询问服务器,如果当服务器不可用时,则会跳转失败。
permanent: 第一次请求会询问,浏览器会记录跳转的地址,第二次则不再询问服务器,直接通过浏览器缓存的地址跳转。
[root@web01 conf.d]# cat test.conf
server {
listen 80;
server_name rewrite.biamei.com;
root /code;
location /test {
rewrite ^(.*)$ https://www.baimeidashu.com redirect;
}
}
Rewrite规则实践 {#title-3}
Nginx内置参数