这就用到了变量$document_uri,根据前面所学内容,该变量等价于$uri,其实也等价于location匹配。

示例1:

if ($document_uri ~ "/admin/")
{
return 403;
}

说明:当请求的uri中包含/admin/时,直接返回403.

if结构中不支持使用allow和deny。

测试链接:
1. www.xxx.com/123/admin/1.html 匹配
2. www.xxx.com/admin123/1.html 不匹配
3. www.xxx.com/admin.php 不匹配

示例2:

if ($document_uri = /admin.php)
{
return 403;
}

说明:请求的uri为/admin.php时返回403状态码。

测试链接:
1. www.xxx.com/admin.php 匹配
2. www.xxx.com/123/admin.php 不匹配

示例3:

if ($document_uri ~ '/data/|/cache/.*\.php$')
{
return 403;
}

说明:请求的uri包含data或者cache目录,并且是php时,返回403状态码。

测试链接:
1. www.xxx.com/data/123.php 匹配
2. www.xxx.com/cache1/123.php 不匹配