
사이트를 아파치(Apache) 서버에서 호스팅하고 있다면 '하이퍼텍스트 액세스(Hypertext Access)' 파일, 즉 .htaccess 파일을 접하게 됩니다. 이 파일은 루트 디렉터리와 하위 디렉터리의 파일 및 폴더 접근을 제어하는 규칙을 만들 수 있는 강력한 도구입니다. 실제로 워드프레스 루트 디렉터리에 있는 .htaccess 파일을 열어보면 고유주소(퍼머링크) 설정과 관련된 코드 조각이 들어 있는 것을 확인할 수 있습니다. 하지만 이 파일의 활용 범위는 그것에 그치지 않습니다. 지금부터 모든 워드프레스 사용자가 알고 적용해야 할 가장 유용한 .htaccess 규칙 7가지를 소개합니다.
시작하기 전에 꼭 확인할 사항
1. 별도의 안내가 없는 한, 아래 소개하는 코드 조각은 모두 사이트 루트 디렉터리에 위치한 .htaccess 파일에 추가해야 합니다.
2. 수정 작업을 시작하기 전에 반드시 기존 파일을 백업해 두세요. 문제가 발생했을 때 언제든 원래 상태로 복구할 수 있습니다.
1. 디렉터리 탐색 비활성화
워드프레스를 설치한 직후 가장 먼저 해야 할 보안 설정 중 하나가 바로 디렉터리 탐색(directory browsing) 비활성화입니다. 이 기능이 켜져 있으면 사이트의 디렉터리 구조가 외부에 노출되어 방문자 누구나 폴더 내용을 열람할 수 있게 됩니다. 일부 호스팅 업체는 기본적으로 이 기능을 꺼두지만, 대부분은 활성화된 상태로 두므로 직접 확인하고 차단하는 것이 좋습니다. 아래 코드를 .htaccess 파일에 추가하기만 하면 됩니다.
#디렉터리 탐색 비활성화 Options All -Indexes

2. 301 리다이렉트 생성
워드프레스에는 URL을 자유롭게 리다이렉트할 수 있는 플러그인이 다양하게 존재합니다. 하지만 단 몇 개의 URL만 리다이렉트하려는 경우라면 굳이 전용 플러그인을 설치할 필요가 없습니다. 아래와 같은 간단한 코드 조각만으로 충분합니다. 예시 URL은 실제 사용 환경에 맞게 교체하는 것을 잊지 마세요.
#301 리다이렉트 생성 Redirect 301 /oldpage.html https://example.com/newpage.html
3. 브라우저 캐싱 활성화
.htaccess 파일을 활용하면 브라우저 캐싱도 설정할 수 있습니다. 브라우저 캐싱이 활성화되면 이미지, CSS 등 정적 리소스가 방문자의 브라우저에 저장되어 재방문 시 페이지 로딩 속도가 눈에 띄게 빨라집니다. 아래 코드를 .htaccess 파일에 추가하세요.
#브라우저 캐싱 활성화 <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 2 days" </IfModule>
4. 필요할 때 점검(유지보수) 페이지 표시
사이트에 간단한 점검 작업을 진행하거나 일시적으로 오류가 발생한 경우, 무거운 유지보수 플러그인을 설치하는 것은 과할 수 있습니다. 이럴 때는 간단한 안내 문구가 담긴 HTML 페이지를 하나 만들어 루트 디렉터리에 업로드한 뒤, 아래 코드로 방문자를 해당 페이지로 리다이렉트하면 됩니다. 'maintenance.html' 부분은 실제로 사용하는 파일명으로 변경해야 합니다.
#점검 모드 활성화
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L]
5. 관리자 영역 접근 제한
워드프레스 사이트를 혼자서 운영하는 경우라면, 관리자 영역 접근을 특정 IP로 제한함으로써 사이트 보안을 크게 강화할 수 있습니다. 아래 코드에서 192.168.0.1을 본인의 실제 IP 주소로 교체해 사용하세요. 여러 개의 IP 주소를 허용 목록에 추가하는 것도 가능합니다.
#wp-login.php 접근 제한 <Files wp-login.php> Order Deny, Allow Deny from All Allow from 192.168.0.1 Allow from xxx.xxx.x.x </Files>

6. 특정 IP 주소 차단
특정 IP 주소에서 의심스러운 활동이 반복적으로 감지된다면 .htaccess 규칙으로 해당 IP를 손쉽게 차단할 수 있습니다. 아래 코드에서 IP 주소 부분을 실제 차단하려는 주소로 바꿔 추가하기만 하면 됩니다.
#의심스러운 IP 주소 차단 <Limit GET POST> order allow,deny deny from 192.168.0.1 deny from 192.168.0.2 allow from all </Limit>
7. .htaccess 파일 자체 보호
.htaccess 파일 하나로 사이트의 다양한 동작을 제어할 수 있는 만큼, 이 파일 자체를 외부의 무단 접근으로부터 보호하는 것이 매우 중요합니다. 아래 코드를 추가하면 외부 사용자가 .htaccess 파일을 열람하거나 수정하는 것을 막을 수 있습니다.
#htaccess 파일 보호 <files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </files>
마무리
.htaccess 파일에 적용할 수 있는 설정은 위에서 소개한 것 외에도 매우 다양합니다. 하지만 오늘 소개한 7가지 규칙만 잘 활용해도 사이트의 보안과 성능을 한층 끌어올릴 수 있습니다. 여러분만의 유용한 .htaccess 팁이 있다면 댓글로 공유해 주세요!