![.htaccess의 특정 줄이 디렉터리 목록 대신 403을 발생시킵니다.](https://linux55.com/image/103355/.htaccess%EC%9D%98%20%ED%8A%B9%EC%A0%95%20%EC%A4%84%EC%9D%B4%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%20%EB%AA%A9%EB%A1%9D%20%EB%8C%80%EC%8B%A0%20403%EC%9D%84%20%EB%B0%9C%EC%83%9D%EC%8B%9C%ED%82%B5%EB%8B%88%EB%8B%A4..png)
WordPress 설치에서 .htaccess 파일은 하위 디렉터리에 액세스할 때 403 오류를 발생시킵니다 foo
(하위 디렉터리는 WordPress 설치의 일부가 아니지만 나중에 내가 만든 것임). 예를 들어 다음과 같은 트리 파일이 있습니다.
/www
|-wp-content/
|-[all the stuff for wordpress]
|-.htaccess
|-foo/
|-.htaccess
보다 구체적으로 오류를 일으키는 줄은 www/.htaccess
다음과 같습니다.
RedirectMatch 403 \.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$
이 문제를 극복하기 위해 나는 다음을 만들었습니다 www/foo/.htaccess
.
RedirectMatch 200 \.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$
하지만 그 줄이 왜 영향을 미치는지 이해할 수 없습니다 foo
. 하위 디렉터리의 이름은 실제로 foo
(테스트용)이고 디렉터리는 입니다 .htaccess
.
답변1
foo 디렉토리에 정규식과 일치하는 파일이 있다고 가정합니다.
\.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$
.
나열된 확장자 중 하나가 뒤에 오는 모든 항목 과 일치합니다 .
따라서 foo 디렉토리에 bar.cgi
해당 경로가 있는 경우 foo/bar.cgi
경로 끝이 일치를 트리거하고 해당 디렉토리가 나열되지 않도록 합니다.
유리 진열장regex101의 이 동작