回答:
他の解決策は私を助けませんでした。
私の解決策は、に負の正規表現を含めることです.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\/)
私の正規表現ほど表現力がありません(定義でよく知られている以外のすべてのドットファイルをブロックするため)。おそらく、よくlocation ~ /\.(?!well-known\/).*
知られているディレクトリのみをブロック解除し、理論的にもブロック解除するような組み合わせが最適かもしれません.well-known-blabla
。しかし、理論的な.well-known-blablaファイルをブロックしないことには、実際の危険はないと思います。
私のWebサイトでLet's EncryptをNGINXで使用する方法に関する完全なステップバイステップチュートリアルを提供しました。
重要な部分は次のとおりです。
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
ず、同じように機能しません。