场景
1)url访问跳转,支持开发设计
2)seo优化
3)维护
后台维护、流量转发
4)安全
使用模块:rewrite
配置区域:server,location,if
正则表达式
. 匹配除换行符以为的任意字符
? 重复0次或1次
"+" 重复1次或以上
"*" 贪婪模式
"\d" 匹配数字
^ 开头标识符(^a表示以a开头)
表示以a结尾)
{n} 重复n次
{n,} 重复n次以上
[c] 匹配单个字符c
[a-z] 匹配a-z任意一个
\ 转义
() 用于匹配括号之间的内容
正则表达式测试工具:pcretest
pcretest安装参考:https://www.cnblogs.com/dingxiaoqiang/p/10860981.html
pcretest简单使用
[root@RHEL7-1 pcre-8.13]# ./pcretest
PCRE version 8.13 2011-08-16
re> /(\d+).(\d+).(\d+).(\d+)/
data> 124.12.1.0
0: 124.12.1.0
1: 124
2: 12
3: 1
4: 0
data>
flag(标识位)
last 停止rewrite检测
break 停止rewrite检测
redirect 返回302临时重定向,地址栏会显示跳转后的地址
permanent 返回301永久重定向,地址栏会显示跳转后的地址
关于last与break的区别
server{
listen 80;
server_name www.ylw.com;
root /soft/code;
location ~ ^/break {
rewrite ^/break /test/ break;
}
location ~ ^/last {
rewrite ^/last /test/ last;
}
location /test/ {
default_type application/json;
return 200 '{"status":"success"}';
}
}
image.png
访问www.ylw.com/break
image.png
访问www.ylw.com/last
image.png
break与last解释
当访问www.ylw.com/break时,rewrite为/test,flag为break。这时候,nginx会去/soft/code目录下寻找test目录,但是test目录不存在,这时候报404错误
当访问www.ylw.com/last时,rewrite为/test,flag为last。这时候,nginx会去重新进行location匹配