ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Nginx Rewrite重写

2021-05-25 21:02:15  阅读:153  来源: 互联网

标签:last rewrite nana com Rewrite break Nginx location 重写


Rewrite基本概述

什么是Rewrite

  • Rewrite主要实现url地址重写,以及重定向,就是把传入Web的请求重定向到其他URL的过程。

Rewrite使用场景

  1. 地址跳转,用户访问www.nana.com这个URL时,将其定向至一个新的域名 dada.nana.com。
  2. 协议跳转,用户通过http协议请求网站时,将其重新跳转至https协议方式。
  3. 伪静态,将动态页面显示为静态页面方式的一种技术,便于搜索引擎的录入,同时减少动态URL地址对外暴露过多的参数,提升更高的安全性。
  4. 搜索引擎,SEO优化依赖于URL路径,好记的URL便于支持搜索引擎录入。

Rewrite标记Flag

rewrite指令根据表达式来重定向url,或者修改字符串。可以应用于server,location,if环境下,每行rewrite指令最后跟一个flag标记,支持flag标记如下所示:

last					本条规则匹配完成后,停止匹配,不再匹配后面的规则			# 开发用的比较多
break					本条规则匹配完成后,停止匹配,不再匹配后面的规则			# 开发用的比较多
redirect				返回302临时重定向,地址栏会显示跳转后的地址	
permanent				返回301永久重定向,地址栏会显示跳转后的地址

last与break的区别对比

- lb01服务器
1. 修改Nginx配置文件
vim /etc/nginx/conf.d/rewrite.conf
server {
       listen 80;
       server_name rewrite.nana.com;
       root /code;

       location ~ ^/break {
               rewrite ^/break /test/ break;
       }

       location ~ ^/last {
               rewrite ^/last /test/ last;
       }

       location /test/ {
               default_type application/json;
               # 定义字符串类型,参照/etc/nginx/mime.types文件 
               return 200 "ok";
       }
}

2. 重启Nginx服务
systemctl restart nginx

3. 在本机添加域名解析
C:\Windows\System32\drivers\etc
在hosts文件添加域名解析
192.168.15.5		rewrite.nana.com	

- 测试
我们在浏览器中输入rewrite.nana.com/last,可以正常访问到ok。
输入rewrite.nana.com/break,页面返回404错误。

break

  • 请求rewrite.nana.com/break
    首先 : 会去查找本地的/code/test/index.html(默认静态文件)的内容;
    如果没有找到该目录则报错404,如果找到了该目录但是没有找到对应的文件则报错403。

last

  • 请求rewrite.nana.com/last
    首先 : 会对当前server层重新的发起一次请求,rewrite.nana.com/test/
    如果有location规则匹配上,则直接返回该location的内容;
    如果没有location规则匹配上,会再去查找本地的/code/test/index.html(默认静态文件)的内容;
    如果没有找到该目录则报错404,如果找到了该目录但是没有找到对应的文件则报错403。

标签:last,rewrite,nana,com,Rewrite,break,Nginx,location,重写
来源: https://blog.csdn.net/Yosigo_/article/details/117263312

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有