상현에 하루하루
All 개발자의 하루

.htasccess 파일로 WordPress 디렉토리 보호,잠금

( 업데이트: )

개인적으로 모든 메모를 워드프레스에서 관리하기로 마음먹고 이것 저것 설정하다보니 미디어 파일에 올라가는 pdf pptx xlsx 과 같은 파일을 암호화 또는 접근할 수 없게 설정해야 했다. 하지만 나는 또 봐야하는 입장이었다.

워드프레스에서 구성해서 하는 것은 한계가 있어서 웹서버에서 접근 할 수 없게 설정해야겠다 생각했다.

1단계

일단 인증받지 못한 유저가 접근하려할때 나타낼 401.html을 워드프레스 루트폴더에 생성

AUTHENTICATION REQUIRED
You need a username and password to access this area.

2단계

.htaccess 파일에 디렉토리 접근할때 인증절차를 추가

ErrorDocument 401 /401.html
AuthName "Secure Area"
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile 절대경로/.htpasswd
Require valid-user

.htpasswd의 경로는 절대경로로 /var/www/html 과 같이 설정해줘야한다.

3단계

.htpasswd 파일을 디렉토리에 업로드

user:password

이 파일에 여러 사용자 이름과 암호를 추가할 수 있습니다. 각각의 줄에 추가합니다.

암호는 암호화해야 하며 여기에서 만들 수 있습니다.

http://www.kxs.net/support/htaccess_pw.html

예외 폴더 지정하기

위 방법으로 일하는 자료들을 잘 보관했다. 하지만 외부에 공개해야하는 일 카테고리의 파일을 사용할 일이생겼다.

그럼 어떻게 특정 폴더의 파일들의 보호를 풀수 있을까?

Satisfy any

외부용으로 사용할 폴더에 위 규칙으로 추가해주면 👌


memo

  • 1단계에서 401.html 파일을 추가하지 않으면 WordPress에서 보호 된 디렉터리로 이동하려고 할 때 404에러를 발생시킵니다.
  • 원하는 경우 401.html을 자체 폴더에 넣을 수 있습니다. .htaccess 파일에서 위치를 변경해야함
  • AuthUserFile에 대한 전체 서버 경로를 입력해야합니다.