nginx重写 location rewrite

Nginx配置与URL重写详解
本文详细介绍了Nginx的location匹配规则及其优先级,包括精准匹配、前缀匹配、正则匹配和通用匹配。同时,讲解了rewrite模块在URL重写和跳转场景中的应用,如搜索引擎优化、域名迁移等。最后,总结了rewrite指令的执行顺序,帮助理解Nginx配置中的URL处理逻辑。

常见的nginx正则表达式
在这里插入图片描述
在这里插入图片描述
location
lication的分类
在这里插入图片描述

location 常用的匹配规则
在这里插入图片描述

location 匹配的优先级
首先精准匹配=
其次前缀匹配^~
其次是按文件中顺序的正则匹配 或*
然后匹配不带任何修饰的前缀匹配
最后是交给 / 通用匹配

location 示例
精准匹配

[root@www ~]# vim /usr/local/nginx/conf/nginx.conf

通用匹配
location / {}
因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 比如访问 / 和 /data, 则 / 匹配, /data 也匹配

location /test/ {}
匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索其它 location
只有其它 location后面的正则表达式没有匹配到时,才会采用这一条

location /test/abc {}
匹配任何以 /documents/abc 开头的地址,匹配符合以后,还要继续往下搜索其它 location
只有其它 location后面的正则表达式没有匹配到时,才会采用这一条

正则匹配
location ^~ /images/ {}
匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条

location ~ .(gif|jpg|jpeg)$ {}*
匹配所有以 gif、jpg或jpeg 结尾的请求
然而,所有请求 /images/ 下的图片会被上一条规则 location ^~ /images/ 处理,因为 ^~ 的优先级更高,所以到达不了这一条正则

优先级总结
(location = 完整路径) > (location ^~ 路径) > (location ,* 正则顺序) > (location 部分起始路径) > (location /)

rewrite
rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标记位实现URL重写以及重定向。
比如:更换域名后需要保持旧的域名能跳转到新的域名上、某网页发生改变需要跳转到新的页面、网站防盗链等等需求。
rewrite只能放在server{},location{},if{}中,并且默认只能对域名后边的除去传递的参数外的字符串起作用,

rewrite跳转场景
Rewrite 跳转场景主要包括以下几种
可以调整用户浏览的 URL,看起来更规范,合乎开发及产品人员的需求

为了让搜索引擎搜录网站内容及用户体验更好,企业会将动态 URL 地址伪装成静态地址提供服务

网址换新域名后,让旧的访问跳转到新的域名上。例如,访问京东的 360buy.com会跳转到 jd.com

根据特殊变量、目录、客户端的信息进行 URL 调整等

Rewrite 跳转实现
Nginx 是通过 ngx_http_rewrite_module 模块支持 url 重写、支持 if 条件判断,但不支 持 else。

另外该模块需要 PCRE 支持,应在编译 Nginx 时指定 PCRE 支持,默认已经安装。

根据相关变量重定向和选择不同的配置,从一个 location 跳转到另一个 location,不过这样 的循环最多可以执行 10 次,超过后 Nginx 将返回 500 错误。

同时,重写模块包含 set 指令,来创建新的变量并设其值,这在有些情景下非常有用的,如记录条件标识、传递参数到其他location、记录做了什么等等

rewrite 执行顺序
执行 server 块里面的 rewrite 指令。
执行 location 匹配。
执行选定的 location 中的 rewrite 指令

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值