6.Rwrite功能

164 阅读2分钟

6.1 Rewrite功能介绍

1.Rewrite简介

Rewrite用于实现URL的重写。

地址重写:实现了地址的标准化,即我们输入 xx.cn 和 xx.com时都能够指向同一个页面,这个过程就是地址重写或是说地址重定向。

2.重定向与转发的区别
  • 地址栏不同

    转发:客户端地址栏不改变

    重定向:地址栏变为服务器选择的地址

  • 网络请求次数不同

    转发:整个过程只有一次网络请求;

    重定向:一次地址重写一般会产生两次网络请求;

  • 发生范围不同

    转发:一般在同一站点项目内

    重定向:无限制

  • 路径名表示

    转发:可不用显示全路径名

    重定向:必须使用完整的全路径名

  • 客户端请求的request属性携带

    转发:可携带request信息到新页面

    重定向:不可以

  • 速率:转发 > 重定向

6.2 rewrite的使用

1.rewrite指令
  • 说明:重定向改变URI,一般搭配正则表达式使用。

  • 语法:rewrite 原地址 重定向地址 [last | break | redirect]

    • last :将此次重定向的地址代替原地址,并且接下来的重定向语句不再执行
    • break:将重定向的URI作为新的URI,并且继续执行下面的重定向语句
    • redirect:将重定向RUI返回给客户端,状态码为302:表明是临时重定向URI,使用在重定向地址不为 http:// 或 https:// 开头的情况。
    • permanent:重定向的URI返回给客户端,状态码为301:永久重定向
  • 案例

image.png

  • 作用域:server块、location块
2.URI 和URL
  • URL:我们浏览器访问网站时输入的就是URL :http://baidu.com

  • URI:具体定位,但定位的具体内容不要

image.png

3.rewrite_log指令

rewrite_log on|off :配置是否开URL重写日志(默认为off关闭)