nginx只允许用户访问某些资源

研发提出了一个需求,只允许用户访问以.php或.html结尾的文件,其他文件不允许访问,以免造成里面的一些配置文件信息泄露。

查找了相关信息,可以做如下配置:

server {
        location / {
            if ($uri !~* \.(php|html|htm)$) {
                return 403;
            }
        }
}

$uri: 请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改,$uri不包含主机名,如”/foo/bar.html”。

这样设置之后,基本实现了研发的要求。 但是其实还是有一个问题,正常的用户访问是输入网址之后,如果后面没有跟详细的资源路径,浏览器会返回index页面,但是如果有上面的设置,应该是优先级的问题,先进性if判断,直接就会返回403,而不是查找index页面。不过这个虚拟主机指向的是一个接口访问的资源文件夹,所以也能满足要求,如果是网站页面的话,最好还是使用下面的配置:
location ~* \.(ini|cfg|dwt|lbi)$ {    
     deny all;
     return 404;
}

这样设置是禁止用户访问某些资源,虽然可能写后缀麻烦一些,不过效果会更好。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值