하위 디렉토리에서 .htaccess 암호 보호를 제거하는 방법


97

사용하여 전체 웹 사이트를 비밀번호로 보호 .htaccess했지만 비밀번호없이 볼 수 있도록 하위 디렉토리 중 하나를 노출하고 싶습니다.

하위 디렉터리에 대한 htaccess 암호 보호를 비활성화하려면 어떻게해야합니까? 특히 .htaccess구문 은 무엇입니까 ?

다음은 내 .htaccessftp의 루트에있는 내 파일입니다.

AuthName "사이트 관리"
AuthUserFile /dir/.htpasswd
AuthGroupFile / dev / null

AuthName 보안
AuthType 기본
사용자 username1 필요
주문 허용, 거부
모두에게 허용하다

4
이것은 serverfault에 더 적합 할 수 있습니다.
beggs

답변:


154

Apache 2.3까지 .htaccess필요한 디렉토리에 새 파일 을 만들고 Satisfy any지시문을 포함해야 합니다.

# allows any user to see this directory
Satisfy Any

Apache 2.4에서 변경된 구문은 동일한 효과를 갖습니다.

Require all granted

7
나는 이것을 Allow from allnot 과 함께 작동시킬 수 Satisfy Any있습니다.
Jess Telford 2011 년

@JessTelford 코드 스 니펫을 잘 사용합니다. @RageZ +1은 나를 위해 일한 답변입니다. 답변을 매우 간단하게 편집하고 코드 조각 방법을 사용하여 게시 할 수 있습니까? 그렇지 않으면 누군가가 생각해야 할 것이다thanks
제시 Burcsik

2
@JessTelford Satisfy Any가 작동 중이며 철자가 Satisify Any. 그것이 당신을 위해 작동하지 않은 이유 일 수 있습니다.
BlueBird 2014 년

1
나는 하나의 파일 (모든 것이 다른 보호) 보호되지 않은이 필요에 동일하게 <파일> 섹션

이것은 나를 위해 작동하지 않습니다-나는 여전히 사용자 이름과 암호를 요구하는 암호 모달을 얻습니다.
ItsMeDom 2014

36

RageZ의 답변에 추가하여 Server Directives에서 이것을 사용했습니다.

<Directory /var/www/protected/>
     AuthType Basic
     AuthName "Production"
     AuthUserFile /path/to/.htpasswd
     Require valid-user
</Directory>

<Directory /var/www/protected/unprotected>
     Satisfy Any
</Directory>

대박. 감사합니다 RageZ!


9

.htaccess다음 지시문을 사용하여 원하는 하위 디렉토리에 새로 만들기 만하면됩니다 .

Allow from all

다음으로 만 IP로 제한 할 수 있습니다.

Allow from x.x.x.x

참조 : http://httpd.apache.org/docs/current/mod/mod_access_compat.html


"모두에서 허용"및 "모두 만족"대신 "모두 허가 필요"를 입력했을 때 작동했습니다. 그 두 가지는 나를 위해 일하지 않았습니다. 저는 Apache 2.4를 사용하고 있습니다.
endo64

1

인증을 재정의하는 하위 디렉터리에 다른 .htaccess 파일을 추가해야합니다. .htaccess는 위로 계단식으로 올라갑니다. 즉, 현재 폴더를 찾은 다음 한 단계 위로 올라갑니다.


4
구문을 알고 있습니까? 개념은 이해하지만 구현 방법을 모르겠습니다.
justinl

현재 파일을 제거하고 권한을 사용하지
않으려면

3
@Garry는 .htaccess 계단식 작동 방식이 아니므로 명시 적으로 옵션을 재정의해야합니다.
William Denniss 2013 년

1

다음은 사이트의 기본 .htaccess 파일에서 기본 인증을 통해 하위 디렉토리 "foo"를 허용하는 방법입니다.

AuthType Basic
AuthName "Password Required"
AuthUserFile /dir/.htpasswd
Require expr %{REQUEST_URI} =~ m#^/foo/#
Require valid-user

참고 : 이것은 Apache 2.4에서 작동합니다. 이전 버전을 확인하지 않았습니다.


0

htaccess 인증에서 특정 방향성을 방지하려면 맨 위에있는 htaccess 파일에서 다음 코드를 사용할 수 있습니다.

AuthType Basic AuthName "Enter Pass" AuthUserFile /home/public_html/.htpasswd /*PATH TO YOUR .htpasswd FILE*/ Require valid-user SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow Order allow,deny Allow from env=allow

또한 여러 디렉토리를 방지하려면 다음을 추가하십시오.

SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow

디렉토리 수만큼 htaccess 방지에서 제거하려고합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.