2009-04-03 6 views
0

는이 같은 구조를 가지고 : 사람이/집에 갈 때PHP와 htpasswd가

/home 
/home/dir1 
/home/dir2 

이제 그는 (형태) 사용자 이름과 암호를 묻는 메시지가됩니다 난 나머지에 대한 PHP에서 세션 정보를 설정/home의 파일들. 지금/home/dir1과/home/dir2는 htpasswd로 보호되지만 사용자 이름과 암호는 동일합니다. 나는 사용자가/home/dir1에 갈 때 사용자 이름과 암호를 다시 입력하기를 원하지 않습니다 ... 또한/home에서 로그 아웃 할 때/home/dir1에서도 로그 아웃하려고합니다. 이것을 달성하는 방법에 대한 조언을 부탁해 주시겠습니까?

+0

는 동일한 인증 도메인 (즉, 올바른 이름인지 확실하지)를 사용합니다. 아파치 문서를 확인하십시오. 그러나 이것은 프로그래밍 문제가 아닙니다. – derobert

답변

3

이것은 기본 동작입니다.

즉, Apache 및 .htaccess 파일을 사용하여 HTTP 인증을 설정하는 경우 디렉토리에 적용한 모든 규칙은 하위 디렉토리에도 적용되며 모든 로그인으로 브라우저에서 처리됩니다.

다른 방식으로 작동하려면 사이트의 일부 섹션을 완전히 별도의 로그인으로 처리해야하는 경우 .htaccess의 AuthName 지정 문을 사용하여 각 섹션에 '영역'을 지정하십시오. More information here. 그러나 그렇게하지 않으면 항상 동일한 로그인의 일부로 취급됩니다.

HTTP 인증은 브라우저가 해당 기능을 제공하지 않는 한 '로그 아웃'할 방법이 없다는 것입니다. 대부분의 브라우저에서 로그 아웃 할 수있는 유일한 방법은 브라우저 세션을 종료하는 것입니다 (예 : 브라우저 닫기). 그리고 네, 일단 이렇게하면/home,/home/dir1,/home/dir2 및 모든 사이트/영역의 모든 디렉토리에서 로그 아웃됩니다.

0

두 폴더가 동일한 AuthName이고 동일한 사이트에 있으면 암호를 공유해야합니다.

두 디렉토리과 같이 .htaccess 파일이있을 수 있습니다 :

AuthName "My Protect Folder" 
AuthType basic 
AuthUserFile /somewhere/htusers 
require valid-user