Rewrite

  • Rewrite 通过正则表达式的使用改变URI(相对),可以同时存在一个或者多个指令,按照顺序依次对URL进行匹配和处理
    • Rewrite 接受到的URI不包含host地址
 
  • Rewrite介绍
    • Rewrite是Nginx服务器提供的一个重要基本功能,其在Web服务器产品中几乎是必备的功能,用于实现URL的重写
      • URL的重写是非常有用的功能,
            比如它可以让我们在改变网站结构后,无需要求客户端用户修改原来的书签,也无需其他网站修改对我们网站的友情链接,
    • 它还可以在一定程度上提高网站的安全性,
    • 能够让我们的网站显得更加专业
    • Nginx的Rewrite功能依赖于PCRE(Perl 兼容的正则表达式)
    • ngx_http_rewrite_module
  • 地址重写 和 地址转发
    • 地址重写 实际上是为了解决地址标准化
      • 地址标准化
        • 举个例子,比如在访问百度首页的时候,我们在地址中可以输入www.baidu.com,也可以输入
        • www5.baidu.com www.baidu.com.cn www.baidu.cn baidu.com
        • 他们都能准确的指向www.baidu.com
        • 如果我们ping就会发现地址不同,我们可以在命令行测试下
        • 在客户端看来,baidu首页同时对应了几个地址,实际上baidu服务器是在不同的地址中选择了确定的一个,www.baidu.com,进而返回服务器响应的,
        • 这个过程就是地址标准化的过程,baidu.com这个地址在服务器中被改编为www.baidu.com的过程就是地址重定向的过程
      • 地址转发(反向代理)
        • 转发的概念最初和网页的访问并没有太大关系,它是指网络数据传输过程中数据分组到达路由器后该设备通过检查分组地址并将数据转到相邻局域网上的过程
        • 后来该概念被用在了网页访问中,就出现了地址转发这一说法,是指一个域名指到另一个已有站点的过程
      • 地址重写和地址转发的几点区别
        • 地址转发后客户端浏览器地址栏的地址的显示是不改变的,而地址重写后客户端浏览器地址栏中的地址改编为服务器选择确定的地址
        • 在一次地址转发整个过程中,只产生一次网络请求,而一次地址重写一般会产生两次请求
        • 地址转发一般发生在同一站点的项目内,而地址重写没有该限制
        • 地址转发到的页面可以不用全路径名表示,而地址重写到的页面必须使用完整的路径名表示
        • 地址转发过程中,可以将客户端请求的request范围内属性传递给新的页面,但地址重写不可以
        • 地址转发的速度较地址重写快

最新文章

  1. poj 1806 分块模拟
  2. webservice4
  3. javascript 函数声明与函数表达式的区别
  4. hihoCoder 1160 攻城略地
  5. [转]EF 4.1 Code First
  6. xocde 静态类库 相对路径 与 绝对路径
  7. JS 防止表单重复提交
  8. Web Browser使用技巧
  9. xcode4.5应用程序本地化
  10. Oracle学习第二天
  11. 【c++类的构造函数具体解释 】
  12. DIV+CSS初学随记
  13. Java中的String为什么是不可变的? -- String源码分析
  14. php变量函数
  15. windows7系统最大支持多少内存
  16. HDU3488 Tour
  17. VirtualBox 安装 CentOS6.5 教程
  18. 简述ASP.NET的页面运行机制
  19. 获取鼠标经过位置的X、Y坐标
  20. DevExress笔记

热门文章

  1. EL表达式学习(一)
  2. cookie实现访问时间查看
  3. tomcat中修改Web站点的默认根目录
  4. centos7 修改时间
  5. netty系列之:搭建HTTP上传文件服务器
  6. Windows系统一些好用的办公工具
  7. Leetcode 146. LRU 缓存机制
  8. C# Dapper基本三层架构使用 (三、DAL)
  9. 用Java实现红黑树
  10. RMI源码调试