문제

나는 다음과 같은 구조를 가지고 있습니다.

/home
/home/dir1
/home/dir2

이제 누군가가 /집으로 가면 사용자 이름과 비밀번호 (양식)를 요청하고 나머지 /홈 파일에 대해 PHP에서 세션 정보를 설정했습니다. 지금 /home /dir1 및 /home /dir2는 htpasswd에 의해 보호되지만 동일한 사용자 이름과 비밀번호로 보호됩니다. 사용자가 /home /dir1에 갈 때 사용자 이름과 비밀번호를 다시 입력하는 것을 원하지 않습니다 ... 또한 /홈에서 로그 아웃 할 때 /home /dir1에서도 로그 아웃하고 싶습니다. 이를 달성하는 방법에 대한 조언을 해주시겠습니까?

도움이 되었습니까?

해결책

이것은 기본 동작이어야합니다.

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

다르게 행동하기를 원한다면, 즉 사이트의 일부 섹션이 완전히 별도의 로그인을 요구하는 것으로 취급되기를 원한다면 .htaccess의 Authname Directive를 사용하여 각 섹션에 대해 '영역'을 지정합니다. 자세한 내용은 여기에 있습니다. 그러나 그렇게하지 않으면 항상 동일한 로그인의 모든 부분으로 취급됩니다.

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

다른 팁

두 폴더가 동일하다면 아파치에서 인증 그리고 동일한 사이트에 있으며 비밀번호를 공유해야합니다.

두 디렉토리 모두와 같은 .htaccess 파일이있을 수 있습니다.

AuthName "My Protect Folder"
AuthType basic
AuthUserFile /somewhere/htusers
require valid-user
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top