如何禁止访问除.well-已知的所有点目录?

时间:2015-12-14 04:00:27

标签: nginx

我在我的nginx配置中得到了这个:

location ~ /\. {
    deny all;
}

location /.well-known/ {
    allow all;
}

但我仍然无法访问http://example.com/.well-known/acme-challenge/taUUGC822PcdnCnW_aADOzObZqFm3NNM5PEzLNFJXRU。如何允许只访问那个点目录?

2 个答案:

答案 0 :(得分:24)

您有正则表达式位置和前缀位置。除非^~与前缀位置一起使用,否则正则表达式位置优先。尝试:

location ~ /\. {
    deny all;
}
location ^~ /.well-known/ {
#   allow all;
}

有关详细信息,请参阅this document

答案 1 :(得分:9)

我会使用优化代码:

location ~ /\.(?!well-known).* {
    deny all;
}

所有点都被拒绝,除了.well-已知文件夹