Answers:
其他解决方案对我没有帮助。
我的解决方案是包括负正则表达式的.well-known
。您的代码块应如下所示:
## Disable .htaccess and other hidden files
location ~ /\.(?!well-known).* {
deny all;
access_log off;
log_not_found off;
}
它将阻止每个点文件,除了以 .well-known
PS:我也将添加return 404;
到该块。
location ~* /\.(?!well-known\/) {
因为在看到github.com/h5bp/server-configs-nginx/blob/master/h5bp/location/...等同于这个location ~ /\.(?!well-known).* {
?
/\.(?!well-known\/)
不如我的regex富有表现力(因为我阻止了所有点文件,但众所周知的除外)。也许最好的办法是像location ~ /\.(?!well-known\/).*
这样的组合,即仅解除对知名目录的阻止,而不是对理论上的阻止.well-known-blabla
。但是,我认为不阻止理论上的.blank文件并不存在真正的危险。
我已经在我的网站上提供了一个完整的分步教程,介绍如何使用NGINX进行Let's Encrypt。
关键部分是:
您根本不需要在https块中添加侦听器,而这些都已在https上完成。这仅是为了证明您控制了域,它没有为私人或秘密提供任何服务。
# Answer let's encrypt requests, but forward everything else to https
server {
listen 80;
server_name example.com www.example.com
access_log /var/log/nginx/access.log main;
# Let's Encrypt certificates with Acmetool
location /.well-known/acme-challenge/ {
alias /var/www/.well-known/acme-challenge/;
}
location / {
return 301 https://www.example.com$request_uri;
}
}
上面链接了完整的分步指南。
.htaccess
文件。它具有可配置的文件,但没有被称为.htaccess
,它们也无法正常工作。