nginx: 정규식 일치가 같지 않습니까?

nginx: 정규식 일치가 같지 않습니까?

nginx 일치에 해당하는 "not"이 있습니까? 내가 생각하고

location !~ "\.(html|php)$" {
    deny all;
}

html 및 php 파일만 제공하도록 허용합니다. 대안은 "모두 거부" 다음에 "모두 허용"이 있는 ~입니다. 아아, 이것은 내 nginx 파일의 일부 이전 위치 마법을 어떻게든 방해하는 것 같습니다.

답변1

다음과 같이 중첩된 위치 논리를 사용할 수 있습니다.

location / {
  deny all;
  location ~* "\.(html|php)$" {
    Allow all;
  }
}

답변2

정규식 위치도 순서에 따라 일치합니다. 따라서 다음과 같은 것을 사용할 수도 있습니다.

location ~* "\.(html|php)$" { ...; break; } location ~* "." { deny all; }

두 번째 위치도 정규식 기반이어야 합니다.

관련 정보