.htaccess의 특정 줄이 디렉터리 목록 대신 403을 발생시킵니다.

.htaccess의 특정 줄이 디렉터리 목록 대신 403을 발생시킵니다.

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의 이 동작

관련 정보