답변:
다른 솔루션은 도움이되지 않았습니다.
내 해결책은에 대한 정규 표현식 을 포함시키는 것 입니다 .well-known
. 코드 블록은 다음과 같아야합니다.
## Disable .htaccess and other hidden files
location ~ /\.(?!well-known).* {
deny all;
access_log off;
log_not_found off;
}
로 시작하는 점을 제외한 모든 점 파일을 차단합니다. .well-known
추신 : 나는 또한 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 파일을 차단하지 않으면 실제 위험이 없다고 생각합니다.
내 웹 사이트 에서 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
되지도 않고 동일하게 작동하지도 않습니다.