一.常用的location配置中使用的正则符号开始,结束,转义符号
表达式 | 作用 |
^ | 与字符串开始的地方匹配,不匹配任何字符 |
$ | 与字符串结束的地方匹配,不匹配任何字符 |
\ | 转义支付 \. 匹配小数点 \^ 匹配 ^ |
二.常用正则语法
字符 | 说明 |
^ | 匹配输入字符串的开始位置。要匹配 "^" 字符本身,请使用 "\^" |
$ | 匹配输入字符串的结尾位置。要匹配 "$" 字符本身,请使用 "\$" |
( ) | 标记一个子表达式的开始和结束位置。要匹配小括号,请使用 "\(" 和 "\)" |
[ ] | 用来自定义能够匹配 '多种字符' 的表达式。要匹配中括号,请使用 "\[" 和 "\]" |
{ } | 修饰匹配次数的符号。要匹配大括号,请使用 "\{" 和 "\}" |
. | 匹配除了换行符(\n)以外的任意一个字符。要匹配小数点本身,请使用 "\." |
? | 修饰匹配次数为 0 次或 1 次。要匹配 "?" 字符本身,请使用 "\?" |
+ | 修饰匹配次数为至少 1 次。要匹配 "+" 字符本身,请使用 "\+" |
* | 修饰匹配次数为 0 次或任意次。要匹配 "*" 字符本身,请使用 "\*" |
| | 左右两边表达式之间 "或" 关系。匹配 "|" 本身,请使用 "\|" |
三.location的语法详解
基本语法:location [=|~|~*|^~] /uri/ { … }
= 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求
~ 为区分大小写匹配(可正则)
~* 为不区分大小写匹配(可正则)
^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式
四.详解 ~ 为区分大小写匹配(可正则)
location ~ \.php$ {
root /usr/local/nginx/html/php;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
}
这段文字,是官方的,匹配php文件的正则 把以 .php为结尾的文件都匹配到
/usr/local/nginx/html/php目录的 index.php
location ~ \.(gif|jpg|png)$ {
root /data/uploads/;
}
参考:
http://www.php100.com/html/program/nginx/2013/0905/5535.html
http://www.regexlab.com/zh/regref.htm