
특정 디렉터리에 대해 BasicAuth 보호를 설정할 때 간단한 설정( apache2.conf
파일 내)을 사용합니다.
<Directory /var/www/somedir/>
Deny from all
AuthUserFile /var/pswd/somedir/.htpasswd
AuthName authorization
AuthType Basic
Satisfy Any
require valid-user
</Directory>
하지만 기본적으로 서버의 모든 곳에 BasicAuth를 설정하고 특정 디렉터리(웹 사이트, 도메인)에 대해서만 잠금을 해제하고 싶습니다.
그렇다면 특정 디렉토리를 제외한 서버의 모든 곳에 어떻게 BasicAuth를 설정할 수 있습니까?
답변1
모든 후속 정의는 Apache 구성 파일의 이전 정의를 재정의해야 합니다. 아래를 시도해 보세요. 문제가 해결될 것입니다.
<Directory /var/www/>
Order deny,allow
Deny from all
AuthUserFile /var/pswd/somedir/.htpasswd
AuthName authorization
AuthType Basic
Satisfy Any
require valid-user
</Directory>
Alias /path/to/opendir/ /public
<Directory /var/www/opendir/>
Allow from all
</Directory>
.htaccess
다음을 추가하여 이를 제어하는 데 사용할 수도 있습니다 .
Override Auth
Allow from all
Satisfy any
답변2
이것은 귀하의 주요 인증을 위한 것입니다.
<Directory /var/www/somedir/>
Order deny,allow
Deny from all
AuthName "User Authentication"
AuthType Basic
AuthUserFile /var/pswd/somedir/.htpasswd
Require valid-user
</Directory>
이것은 폴더 예외에 대한 것입니다
<Directory /var/www/somedir/accessibleDir/>
Allow from all
</Directory>
사용자 목록에 사용자를 추가하려면 다음을 사용하세요.
htpasswd -b -m /var/pswd/somedir/.htpasswd {User} {Pass}
가능하다면 .htaccess를 사용하지 마십시오. 하드 드라이브 액세스를 줄이면 웹 사이트 성능이 향상됩니다.