赞
踩
^ | 匹配以...开头的字符串 |
$ | 匹配以...结尾的字符串 |
^$ | ^$表示空行 |
* | 匹配前面的字符0次或者多次(通配符*表示任意数量的任意字符) |
+ | 匹配前面的字符1次或多次 |
? | 匹配前面的字符0次或1次 |
. | 匹配除了“\n”之外的任意单个字符,[.\n]表示匹配包括“\n”在内的任意字符 |
.* | 匹配前面的任意1个字符,字符可以不存在 |
.+ | 匹配前面的任意1个字符,字符必须存在 |
\ | 将后面接着的字符记为一个特殊字符或者一个原意字符或一个向后引用 |
\n | 匹配换行符 |
\t | 匹配制表符 |
\r | 匹配回车符 |
\d | 匹配纯数字 |
\w | 匹配任意字母、数字或下划线 |
\s | 匹配任意空白符 |
{n} | 表示匹配前面的字符n次 |
{n,} | 匹配前面的字符至少n次 |
{n,m} | 匹配前面的字符n-m次 |
| | 表示或 |
() | 表示表达式整体 |
精准匹配、一版匹配、正则匹配
优先级:精准匹配 = > 最长前缀匹配 ^~ > 正则匹配 ~ ~* !~ !~* > 一般前缀匹配 /XXXX > 通用匹配 /
在没有合适的精准匹配的情况下,先看前缀匹配的长度,取最长匹配的location(如果此最长匹配是带有^~的则不再看正则匹配;如果此最长匹配是不带有^~的则会继续再看正则匹配)。
location = / {
root 网页根目录;
index index.html;
}
location ~ /static/ {
root 目录;
}
location / {
root 目录;
}
location \.php$ {
fastcgi_pass PHP服务器地址:端口;
}
location \.jsp$ {
proxy_pass TOMCAT服务器地址:端口;
}
rewrite 正则表达式 重写的地址 [标记位];
标记位 | 说明 |
last | 本条规则匹配完成后,不终止重写后的url匹配,一般用在 server 和 if 中 |
break | 本条规则匹配完成即终止,终止重写后的url匹配,一般使用在 location 中 |
permanent | 返回302临时重定向,浏览器地址会显示跳转后的URL地址 |
redirect | 返回301永久重定向,浏览器地址栏会显示跳转后的URL地址 |
- #默认只对域名后面的URL部分重写
- rewrite 正则表达式 /新URL; http://域名/旧URL -> http://域名/新URL
-
- #如果需要全域名路径重写需要加上协议和域名
- rewrite 正则表达式 http://新域名/新URL; http://旧域名/旧URL -> http://新域名/新URL;
-
- http://域名/旧URL --rewrite重写--> http://域名/新URL --> location匹配新URL路径跳转页面
-
- rewrite 正则表达式 /新URL permanent; #重写后会修改浏览器里的地址栏再重新访问
-
- http://域名/旧URL --rewrite重写--> http://域名/新URL --> 浏览器地址栏也会改为 http://域名/新URL 再发起一次访问请求 --> location匹配新URL路径跳转页面
-
-
- location ~ URL路径正则表达式 {
- rewrite 正则表达式 重写的地址 [标记位];
- }
-
- $request_uri
- if ($uri ~ URL路径正则表达式) {
- rewrite 正则表达式 重写的地址 [标记位];
- }
(1)将请求http://www.xy101.com/abc/123.html 跳转到首页http://www.xy101.com
(2)将请求http://www.xy101.com/abc/test.jpg 跳转到http://www.xy101.com/error.png
(3)将请求http://www.xy102.com/discuz/index.php 跳转到http://www.xy101.com/discuz/index.php ,保证原域名后面的uri路径不变
(4)将请求http://discuz.xy101.com/index.php 的访问跳转到http://www.xy101.com/discuz/index.php ,保证原域名后面的uri路径不变
(5)将对http://www.xy101.com 网站的所有请求跳转到自定义的维护页面或图片,本地可以访问
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。