nginx rewrite 问题 5
if($host~*^192\.168\.1\.(.*?)$){set$allowHost‘1’;}if($allowHost!~‘1’){}第一行中为什么要加问号呢?不...
if( $host ~* ^192\.168\.1\.(.*?)$ )
{
set $allowHost ‘1’;
}
if( $allowHost !~ ‘1’ )
{
}
第一行中为什么要加问号呢?不加不是也行么?问号是什么意思在里面?大神们帮帮忙!!! 展开
{
set $allowHost ‘1’;
}
if( $allowHost !~ ‘1’ )
{
}
第一行中为什么要加问号呢?不加不是也行么?问号是什么意思在里面?大神们帮帮忙!!! 展开
1个回答
展开全部
\w+ 匹配由数字、26个英文字母或者下划线组成的字符串
.* 意味着能够匹配任意数量的任何字符
$1-$9存放着正则表达式中最近的9个正则表达式的匹配结果,这些结果按照子匹配的出现顺序依次排列。
$1 代表的是匹配的第一个结果
括号表示的是表达式定义的“组”(group),并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存9个) 上面的表达式有2个匹配组 (\w+) 和 (.*) 所有后面可以用 $1 和 $2 来用
比如你的例子
^/(\w+)/(.*)$ /$1/index.php last;
/abc123/bcdfda => /abc123/index.php
.* 意味着能够匹配任意数量的任何字符
$1-$9存放着正则表达式中最近的9个正则表达式的匹配结果,这些结果按照子匹配的出现顺序依次排列。
$1 代表的是匹配的第一个结果
括号表示的是表达式定义的“组”(group),并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存9个) 上面的表达式有2个匹配组 (\w+) 和 (.*) 所有后面可以用 $1 和 $2 来用
比如你的例子
^/(\w+)/(.*)$ /$1/index.php last;
/abc123/bcdfda => /abc123/index.php
追问
你的意思我明白。但是我特别想知道上面第一行的?代表什么意思 感觉不加上?也行啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询