특정 하위 폴더 아래의 구성 파일에 대한 액세스를 거부해야 합니다. 현재 이 규칙이 있지만 작동하지 않습니다.
<Files ~ "((foo|bar))$">
Order deny,allow
Deny from all
</Files>
에 가면 www.mysite.com/foo/foo2/file.xml
파일을 볼 수 있어요. foo
모든 파일 액세스를 재귀적으로 거부해야 합니다.bar
고쳐 쓰다
이 구성을 시도했지만 내부 오류가 발생합니다.
<FilesMatch ".foo\.(*)$">
Order Allow,Deny
Deny from all
</FilesMatch>
답변1
" <Files>
[...]는 지정된 파일 이름과 일치하는 기본 이름(파일 이름의 마지막 구성 요소)을 가진 모든 개체에 적용됩니다." 당신이 원하는 것이 아닌가요?
Directory*
작동 안함.htaccess
예를 들어 다음을 사용해야 합니다 mod_rewrite
.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(foo|bar) - [F]
</IfModule>
답변2
파일 지시문 대신 위치를 사용해 보십시오.
<Location "path/to/folder-or-file">
Order Allow,Deny
Deny from all
</Location>
답변3
아파치 구성에서 정규식 일치를 수행하겠습니다. 그 다음에
<DirectoryMatch>
대신 사용하십시오<File>
(디렉토리에서 정규식 일치를 수행 중입니다).- 정규식의 엄격함을 수정하세요(구체적으로
$
). 정규식을 단순화하세요(괄호가 너무 많음).
<DirectoryMatch "/path/to/toplevel/(foo|bar)"> Order deny,allow Deny from all </DirectoryMatch>
이는 /path/to/toplevel/
WWW 디렉터리가 있는 파일 시스템 위치입니다.foo
bar
그러나 를 통해서만 이 작업을 수행하려면 다음 .htaccess
위치 .htaccess
에 파일을 만드십시오.모든거부하려는 디렉토리(foo, bar, foo/bar 등)를 입력하고 다음 줄을 입력하세요.
Deny from all
안에.