nginx php的路径匹配,Nginx配置中的路径匹配规则及IF判断

通常情况下网站的模板文件是不需要被用户访问的,也可以说是不能被用户访问的。所以我们要配置的规则就是特定目录的特定后缀文件不允许访问。

Nginx路径匹配符号

= 表示精确匹配

^~ 表示uri以某个常规字符串开头,大多情况下用来匹配url路径,nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。

~ 正则匹配(区分大小写)

~* 正则匹配(不区分大小写)

!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则

/ 任何请求都会匹配

符号的优先级

首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。

简单通用配置

静态动态分离,除了静态资源以外的请求都交给Tomcat处理.

location / {

proxy_pass http://localhost:8080

}

location ^~ /static/ {

root /webroot/static/;

}

location ~* \.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {

root /webroot/res/;

}

禁止访问模板文件

location ~ /themes/.*\.(html|htm|php)$

{

deny all;

}

IF判断语句

1、正则表达式匹配:

= = : 等值比较;

~:与指定正则表达式模式匹配时返回“真”,判断匹配与否时区分字符大小写;

~*:与指定正则表达式模式匹配时返回“真”,判断匹配与否时不区分字符大小写;

!~:与指定正则表达式模式不匹配时返回“真”,判断匹配与否时区分字符大小写;

!~*:与指定正则表达式模式不匹配时返回“真”,判断匹配与否时不区分字符大小写;

2、文件及目录匹配判断:

-f, !-f:判断指定的路径是否为存在且为文件;

-d, !-d:判断指定的路径是否为存在且为目录;

-e, !-e:判断指定的路径是否存在,文件或目录均可;

-x, !-x:判断指定路径的文件是否存在且可执行;

#几个示例

#set $flag 0;

##if ($flag = 0) {

# return 501;

#}

#客户端请求的完整请求路径

#if ( $request_uri ~* /(.*)\.php ) {

# return 502;

#}

if (!-f $request_filename) {

return 414;

}

#禁止chrome访问

#if ($http_user_agent ~ Chrome) {

# return 503;

#}

location /loct {

return 401;

}

location / {

#if

root html;

index index.html;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值