Apache 인증 : 하위 디렉토리에 대한 공개 액세스 허용 not protected 모든 사이트를 보호하는 데 아무런 문제가

이것은 아마도 간단한 문제이지만 설명서에서 해결책을 찾을 수 없습니다.

BASIC 인증을 사용하여 웹 사이트를 비밀번호로 보호하고 싶습니다. 그러나 하위 디렉토리를 보호하지 않기를 원합니다.

http://mysite.com/ -> BASIC protected
http://mysite.com/somedir -> BASIC protected
http://mysite.com/someotherdir -> BASIC protected
http://mysite.com/public -> not protected

모든 사이트를 보호하는 데 아무런 문제가 없지만 한 디렉터리를 “보호 해제”할 수있는 방법을 모르겠습니다. 이 사이트는 공유 호스트에서 호스팅되므로 구성을 수행하기 위해 .htaccess 파일에만 액세스 할 수 있습니다.

인증을 무효화하는 지시어가 있습니까?

도와 주셔서 감사합니다 …



답변

호스트가 허용 한 내용에 따라 .htaccess에 문제가 없어야합니다.

다음과 같이 하위 폴더에 .htaccess를 넣을 수 있습니다. 디렉토리에있는 재정의를 사용하도록 설정해야합니다.

 Allow From All
 Satisfy Any

답변

server.com/private/public 경로의 경우 :

server.com/private/.htaccess

AuthType Basic
AuthName "Private, keep out."
Require...

server.com/private/public/.htaccess

Allow From All
Satisfy Any

여기서 핵심은 ‘Satisfy Any’이며 요구 사항을 업스트림에서 함께 처리합니다. ‘Satisfy All’이 기본값입니다.


답변

나는 이것이 그렇게 할 수 있다고 믿는다.

# put the global auth stuff here
...

# put the override here
<Location /public>
Allow from All
Satisfy Any
</Location>

답변

나는 이것을하여 이것을 해결했다.

<Directory "/path/to/maindirectory">
[... auth stuff ... ]
</Directory>

<Directory "/path/to/mysubdirectory">
 Allow from All
 Satisfy Any
</Directory>

위치는 대소 문자를 구분하고 실제 폴더 액세스에는 영향을주지 않고 URL을 통해서만 작동하므로 위치를 사용하지 마십시오.

예를 들어 내가 쓰면

http:/mywebsite/STUFF

또는

http://mywebsite/stuff

또는

http://mywebsite/StUfF

호출 된 실제 디렉토리가 동일하더라도 위치 제어는 다릅니다!

요컨대, “stuff”디렉토리에 대한 액세스를 확인하면 다른 경우로 작성할 수 있습니다.

또한 다른 사람의 위치 제어 기능이있는 단일 디렉토리에서 .htaccess 파일을 사용하면 나에게 도움이되지 않았습니다.

도움이 되길 바랍니다.