结合隐藏文件/目录的nginx规则

时间:2016-08-26 08:49:39

标签: nginx nginx-location

我正在为我的网站设置Let's Encrypt证书,由于我的一个位置规则,我在访问ACME质询文件时遇到了一些问题。基本上我有规则拒绝访问隐藏文件,这是我需要的,以保护该虚拟域上可用的系统数据文件。这是我的规则阻止访问隐藏文件:

location ~ ^/(?:\.|data|config|db_structure\.xml){
    deny all;
}

访问ACME质询文件的规则是:

location /.well-known/acme-challenge/ {
    alias /var/www/challenges/;
    try_files $uri =404;
}

我想结合nginx不会拒绝ACME挑战请求的这两条规则。我试图在隐藏文件规则的上方和下方放置针对ACME挑战的规则,但它在两种情况下都不起作用。我也对这两个规则做了一些修改,但我无法按预期工作。我真的很感激这个问题的任何帮助。

1 个答案:

答案 0 :(得分:2)

使用id修饰符,这使得前缀位置块优先于同一级别的任何正则表达式位置块。

例如:

<span>

以上仍然是前缀位置块。有关详细信息,请参阅this document