Nginx与Rewrite规则

本文介绍URL重写的应用场景,包括URL跳转、SEO优化、后台维护及安全等方面,并详细讲解了正则表达式的使用方法和常见标志如last、break、redirect与permanent的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Rewrite的应用场景:

1,url访问跳转,支持开发涉及

2,SEO优化

3,维护

后台维护,流量转发等

4,安全

 

Rewrite 正则表达式  定向后的位置 模式

作用范围:server location if

案例:

 

正则表达式,^表示开头 $表示结尾 {n}次数 [a-z]区间

注意一点:()两个括号之间是用来提取内容的,通过$1 $2 之类进行调用

案例:

(test) 替换成: $1 222

会变成:test 222

 

测试正则表达式的工具:

yum install pcre -y

pcre

 

 

flag:

last 停止rewrite检测

break 停止rewrite检测

redirect 返回302临时重定向,地址栏会显示跳转后的地址

permanent 返回301永久重定向,地址栏会显示跳转后的地址。

 

last和break的区别:

location ~ ^/break {

rewrite ^/break /test/ break;

}

location ~ ^/last {

rewrite ^/last /test/ last;

}

location /test/ {

default_type application/json;

return 200 '{"status":"success"}';

}

 

/last 会显示,而/break不会,因为break只会在相应目录中进行查找,找不到就会返回报错,而last还会进行一次新的请求,匹配到/test/

 

Goods-3.html ---->Goods.php?goods_id=3

goods-([\d]+)\.html ---> goods.php?goods_id =$1  

 

location / {

index index.php;

rewrite goods-([\d]+)\.html$ /ecshop/goods.php?id=$1;

}

 

注意:用url重写时, 正则里如果有”{}”,正则要用双引号包起来

 

redirect和permanent

redirect相当于发起了两次请求,先一个302状态的,然后再一个200状态的;permanent相当于永久重定向,浏览器不会向后端的服务器再发起请求,直接重定向。

临时重定向,则会先访问后端服务器

 

 

4,rewrite的优先级

执行server块的rewrite指令

执行location匹配

执行选定的location中的rewrite

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值