.htaccess를 사용한 규칙 및 리디렉션 구성

디렉터리 수준의 구성 파일인 .htaccess 파일은 Apache 웹 서버에서 지원됩니다. 이 파일을 사용하면 전체 서버 구성에 영향을 주지 않고 특정 계정에 대해 웹 서버 설정(기능 활성화 또는 비활성화 등)을 변경할 수 있습니다.

이 파일은 위치한 디렉터리 전체와 그 안의 모든 파일 및 하위 디렉터리에 설정을 적용합니다. .htaccess 파일에서 변경한 내용은 서버를 재시작하지 않아도 즉시 적용됩니다.

.htaccess 파일 찾는 방법

.htaccess 파일을 찾으려면:  

1. Spaceship 계정에 로그인 >> Hosting Manager 를 Launchpad에서 선택 >> Manage를 호스팅 플랜 옆에서 클릭 >> Files and Storage >> Manage Files를 웹사이트 이름 옆에서 선택하세요.

2. 도메인 루트 폴더로 리디렉션됩니다. 

3.  도메인의 .htaccess 파일을 편집해야 하는 경우, 도메인 루트 폴더에서 .htaccess 파일을 찾아 마우스 오른쪽 버튼을 클릭한 후 Edit 옵션을 선택하세요:


참고: "숨김 파일(dotfiles) 표시"가 설정 메뉴에서 활성화되어 있는지 확인하세요:


4. 파일 관리자에 .htaccess 파일이 없다면, + 파일 버튼으로 새 파일을 만들 수 있습니다:


5. 이제 직접 구성 규칙을 추가하고 저장할 준비가 되었습니다.
   

자주 사용되는 .htaccess 규칙 목록

차단 

이 방법을 사용하면 IP 주소나 도메인을 기준으로 사용자를 차단할 수 있습니다. 원치 않는 방문자의 접근을 제한하거나, 관리 영역과 같은 웹사이트의 특정 섹션에 소유자만 접근할 수 있도록 제한할 때 특히 유용합니다.

특정 차단 규칙을 적용하려면 다음과 같이 .htaccess 파일을 만드세요:

(모든 사용자의 접근을 허용하고 X.X.X.X IP 주소를 가진 사용자를 차단하려는 경우)

<RequireAll>

Require all granted

Require not ip X.X.X.X

</RequireAll>

(특정 X.X.X.X 및 Y.Y.Y.Y IP만 제외하고 모든 방문자를 차단하려는 경우)

<RequireAll>

Require all denied

Require ip X.X.X.X

Require ip Y.Y.Y.Y

</RequireAll>

참고: 더 이상 사용되지 않는 Allow, Deny, 그리고 Order 지시문을 새로운 Require 지시문과 함께 사용하지 마세요.

Mod_Rewrite(리디렉션 규칙)

Mod_Rewrite는 방문자에게 웹 페이지와 URL이 어떻게 표시되는지 정의합니다.

기본적으로 Mod_Rewrite는 URL을 해당 파일 시스템 경로에 매핑합니다. 그러나 한 URL을 다른 URL로 리디렉션할 수도 있습니다.

리디렉션을 설정하기 전에, 필요에 가장 적합한 리디렉션 유형을 선택하는 것이 중요합니다:

  • 영구 리디렉션(301): 이 리디렉션은 301 상태 코드를 보내며, 페이지가 영구적으로 이동되었음을 나타냅니다. 브라우저에 캐시되어 검색 엔진과 사용자 에이전트가 데이터베이스의 URL을 업데이트하도록 신호를 보냅니다. 가장 일반적인 리디렉션 유형입니다.

  • 임시 리디렉션(302): 이 리디렉션은 302 상태 코드를 보내며, 이동이 임시적임을 나타냅니다. 브라우저는 이 리디렉션을 캐시하지 않으며, 방문자와 검색 엔진을 리디렉션하지만 원래 페이지는 계속 색인됩니다. URL이 앞으로 변경되지 않을 것이 확실하지 않다면 이 유형의 리디렉션을 권장합니다.

아래는 .htaccess 파일을 통해 구성할 수 있는 가장 일반적이고 유용한 리디렉션 목록입니다:

example1.com에서example2.com으로 영구 리디렉션

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com/$1" [R=301,L]

exampledomain1.com에서exampledomain2.com으로 임시 리디렉션

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com\/" [R=302,L]

참고: 아래는 영구 리디렉션 예시입니다. 임시 리디렉션은 코드 끝에 [R=301,L] 대신 [R=302,L]로 바꿔서 정의할 수 있습니다(필요한 경우).

example1.com/subfolder에서example2.com으로 리디렉션

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^subfolder/$ "http\:\/\/example2\.com\/" [R=301,L]

HTTP에서 HTTPS로 리디렉션 (예: example.com)

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule .* https://example.com%{REQUEST_URI} [R,L]

또는

RewriteCond %{SERVER_PORT} 80

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example\.com$

RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

non-WWW에서 WWW로 리디렉션

  • 모든 도메인에 대해 .htaccess가 적용됩니다:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

  • 지정된 도메인에 대해:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

WWW에서 non-WWW로 리디렉션

  • 모든 도메인에 대해 .htaccess가 적용됩니다:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

  • 지정된 도메인에 대해:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]

RewriteRule (.*) http://example.com/$1 [R=301,L]

example.com의 모든 페이지를 해당 domain.com 페이지로 리디렉션

RedirectMatch 301 ^/(.*)$ http://domain.com/$1

참고: 모든 페이지 이름이 두 도메인에서 일치해야 하며, 그렇지 않으면 "페이지를 찾을 수 없음" 메시지가 표시됩니다.

한 페이지를 새 URL로 리디렉션

Redirect 301 /old_page.html http://www.domain.com/new_page.html

참고: 이 방법은 삭제된 페이지를 404 오류로 리디렉션하거나, 콘텐츠 참조를 업데이트한 후 SEO 조정에 유용할 수 있습니다.

인증/인가 

이 규칙 유형은 디렉터리 또는 하위 디렉터리에 대한 보안 제한을 정의합니다. 디렉터리에 비밀번호를 설정하면, 접근하려는 모든 방문자는 사용자 이름과 비밀번호를 입력해야 합니다.

이 보호를 설정하려면:  

1. 보호하려는 디렉터리를 /home/cpanel_user/.htpasswds/ 폴더 내에 만드세요(예: domain.com/test의 경우 경로는 .htpasswds/domain.com/test/입니다).

2. 이 디렉터리 내에 passwd 파일을 만들고 온라인 생성기를 사용해 해시된 접근 자격 증명을 추가하세요.

3. 다음 지시문을 .htaccess 파일에 추가하세요:

AuthType Basic

AuthName "Directory Name"

AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd"

require valid-user

맞춤 오류 페이지

이 기능을 사용하면 웹사이트에 맞춤 오류 페이지를 만들 수 있습니다. 깨진 URL이 있을 때 방문자에게 웹사이트 테마에 맞는 오류 메시지를 제공할 수 있어 유용합니다. 기본 '404 File Not Found' 오류 대신, 사용자가 웹사이트 콘텐츠로 돌아갈 수 있도록 안내하는 맞춤 오류 페이지를 보여 혼란을 방지할 수 있습니다.

맞춤 오류 페이지를 설정하려면, 다음 텍스트를 .htaccess 파일에 추가하세요:

ErrorDocument 404 /404.html

이 줄은 Apache 웹 서버에 404(파일을 찾을 수 없음) 오류가 발생할 때마다 도메인 루트 디렉터리에 있는 404.html 파일을 로드하도록 지시합니다.

참고: 다른 오류(예: 403 또는 500)에 대한 맞춤 오류 페이지를 만들려면, 404를 해당 오류 코드로 바꾸고 /404.html을 맞춤 오류 파일 경로로 바꾸면 됩니다.

기존 .htaccess 규칙 비활성화

기존 규칙 중 일부를 임시로 비활성화해야 할 경우(예: 테스트 목적), 간단히 주석 처리할 수 있습니다. 이를 위해 줄 맨 앞에 # 기호를 추가하세요.

또는, 한 줄 또는 여러 줄을 선택한 후 Ctrl + / 단축키를 사용할 수도 있습니다.

유효한 이메일이 필요합니다