특정 디렉토리를 제외한 모든 곳에 BasicAuth를 설정하는 방법

특정 디렉토리를 제외한 모든 곳에 BasicAuth를 설정하는 방법

특정 디렉터리에 대해 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를 사용하지 마십시오. 하드 드라이브 액세스를 줄이면 웹 사이트 성능이 향상됩니다.

관련 정보