nginx的正则表达式 | |
符号 | 含义 |
^ | 字符串的起始位置(以什么开头) |
$ | 字符串的结束位置(以什么结尾) |
* | 匹配所有 |
+ | 匹配前面的字符最少1次 |
? | 匹配前面的字符0次或者1次 |
. | 任意单个字符 |
{n} | 连续重复出现n次 |
{n,m} | 连续重复n-m次 |
[c] | 匹配单个字符c |
() | 分组 |
| | 或 |
1、精确匹配:完整路径,一个字不能少,也不能错
(1)格式:location = / {}
2、正则匹配
(1)格式:location ~ / {}
正则匹配符号 | 含义 |
^~ | 前缀匹配,以什么为开头 |
~ | 区分大小写进行匹配 |
~* | 不区分大小写进行匹配 |
!~ | 区分大小写取反匹配 |
!~* | 不区分大小写取反匹配 |
location = 完整路径 > location ^~ > location~/~* > location /test > location /
①格式:
location = / {
}
①格式:
location ^~ /static {
}
location ~* \. (html|jpg|jepg)$ {
}
①格式:
location / {
proxy_pass http://tomcat server;
}
1、rewrite:结合nginx提供的全局变量和自定义的变量,结合正则表达式以及标志位实现
url重写以及重定向
2、rewrite中可以添加if语句,但只有if没有else
1、执行server块里面的rewrite
2、执行location里面定义的rewrite
3、选定location中的rewrite
格式:rewrite
internal redirection cycle while processing:
处理请求时发生了重写或者内部重定向循环,进入了无限循环,nginx内部循环最多可以执行10次,超过10次会报错500
.* :表示匹配所有
$1 :表示捕获组,$1表示引用正则表达式的第一个捕获组
www.yyy.com/test/index.html 1.jpg
www.yyy.com/ky32/index.html 1.jpg
$1 匹配就是(.*)里的内容
1、表面上rewrite和location都可以跳转,但区别在于rewrite是在同一域名之内更改获取资源的路径
2、location是对路径访问控制,匹配到之后不再向下继续匹配
3、临时重定向和永久重定向(会影响搜索引擎的权重)
(1)永久重定向会加入搜索引擎的权重
(2)临时重定向不会加入搜索引擎的权重
www.yyy.com,公司业务变更,迁移到了新的域名www.benet.com代替,但是旧域名不能被废除(访问yyy可以跳转到benet,且匹配的uri不能变)
公司业务新版本上线,用户访问网站统一显示固定的维护页面,只有公司的20.0.0.xx可以访问
上一篇:MySQL题库(1)