# 사이트 리디렉션

Source: https://support.kapsulehost.com/ko-kr/site-redirects

리디렉션은 방문자를 이전 URL에서 새 URL로 보내는 기능으로, 이를 통해 사이트를 가리키는 모든 링크를 깨뜨리지 않고도 사이트 구조를 재구성할 수 있습니다. 이 가이드는 세 가지 소스 형태, 301과 302 중 선택하는 방법, 쿼리 문자열, 그리고 확인 배지를 읽는 방법을 다룹니다.

## KPanel에서 리디렉션 위치

1. [KPanel](https://kpanel.kapsulehost.com)에 로그인합니다.
2. 왼쪽 사이드바에서 **웹사이트**를 클릭한 다음 해당 사이트를 클릭합니다.
3. 사이트의 왼쪽 메뉴에서 **설정**를 연 다음 **리다이렉트**를 엽니다.

직접 주소는 `/websites/<site-id>/redirects`입니다.

![KPanel의 사이트 리디렉션](https://support.kapsulehost.com/help/screenshots/site-redirects.243dc02e.webp)

여기서의 리디렉션은 애플리케이션이 실행되기 전, 웹 서버에 의해 적용됩니다. 이 때문에 플러그인 기반 리디렉션보다 빠르며, 애플리케이션이 전혀 인식하지 못하는 URL에 대해서도 작동합니다.

## 리디렉션 추가하기

1. **리디렉션 추가**를 클릭합니다.
2. **소스 경로**를 입력합니다.
3. **Destination**을 입력합니다.
4. **301 영구** 또는 **302 임시**를 선택합니다.
5. **쿼리 문자열 보존**을 체크할지 결정합니다.
6. **리디렉션 추가**를 클릭합니다.

리디렉션이 적용된 후 사이트에 대해 직접 확인되므로, 표시되는 상태는 추측이 아니라 실제 동작을 반영합니다.

## 세 가지 소스 형태

| 형태 | 예시 | 일치 대상 |
|---|---|---|
| 정확히 일치 | `/old-page` | 해당 경로 하나만 |
| 접두사 | `/old-path/` | 해당 경로와 그 하위 모든 것 |
| 와일드카드 | `/blog/*` | `/blog/` 아래의 모든 것, 나머지를 캡처 |

와일드카드 소스는 `*`에 일치한 부분을 캡처하며, 목적지는 이를 `$1`로 참조할 수 있습니다. 따라서 소스가 `/blog/*`이고 목적지가 `/news/$1`인 경우, `/blog/hello-world`를 `/news/hello-world`로 보내며, 규칙 하나로 다른 모든 게시물에 대해서도 동일하게 작동합니다.

> **Note:** 리디렉션이 생성된 후에는 소스 경로를 변경할 수 없습니다. 잘못 입력했다면 리디렉션을 삭제하고 새로 추가하세요. 목적지, 코드, 쿼리 설정은 모두 편집 가능합니다.

## 목적지

목적지는 다음 중 하나일 수 있습니다:

- **상대 경로**: `/new-page`처럼, 같은 사이트 내 다른 곳으로 방문자를 보냅니다.
- **절대 경로**: `https://example.com/new`처럼, 완전히 다른 사이트로 방문자를 보냅니다.

절대 목적지는 예를 들어, 다른 곳에 호스팅된 문서를 가리키는 도메인 상의 `/docs`처럼 사용자 지정 경로(vanity path)를 만드는 방법입니다.

## 301인가 302인가

**301 영구**는 브라우저와 검색 엔진에게 이동이 최종적임을 알립니다. 검색 엔진은 순위 신호를 새 URL로 이전하고 이전 URL에 대한 요청을 중단합니다. 브라우저는 리디렉션을 캐시하며, 때로는 매우 오랫동안 유지합니다.

**302 임시**는 이동이 되돌려질 수 있음을 나타냅니다. 아무것도 이전되지 않으며 장기간 캐시되지 않습니다.

실제로 구조를 재편한 경우, 즉 페이지를 옮겼고 되돌아올 계획이 없다면 301을 사용하세요. 임시 캠페인 페이지나 점검 안내처럼 나중에 되돌릴 것으로 예상되는 경우에는 302를 사용하세요.

> **Warning:** 잘못된 301은 되돌리기 어렵습니다. 브라우저는 영구 리디렉션을 적극적으로 캐시하므로, 잘못된 규칙에 한 번 걸린 방문자는 여러분이 그 규칙을 삭제한 후에도 오랫동안 계속 따라갈 수 있으며, 여러분이 그들의 캐시를 지울 방법은 없습니다. 확신이 서지 않을 때는 302로 시작한 다음, 확신이 서면 301로 승격하세요.

## 쿼리 문자열 보존

**쿼리 문자열 보존**은 기본적으로 켜져 있습니다. 이 옵션이 켜져 있으면 `?utm_source=newsletter`과 다른 모든 매개변수가 목적지까지 그대로 전달됩니다.

거의 모든 경우에 이 옵션을 켜둔 채로 두세요. 쿼리 문자열을 잃으면 캠페인 추적이 깨지고, 페이지네이션과 필터가 깨지며, 상태를 전달하는 모든 링크가 깨집니다. 리디렉션 목록에서는 이 옵션이 꺼진 규칙을 `(query stripped)`로 표시하므로, 어떤 규칙이 매개변수를 누락하는지 한눈에 확인할 수 있습니다.

목적지가 이전 매개변수를 절대 받아서는 안 되는 경우, 예를 들어 이전 매개변수가 다르게 해석되어 잘못된 페이지가 렌더링되는 경우에만 이 옵션을 끄세요.

## 상태 배지 읽기

저장할 때마다 리디렉션은 캐시를 거치지 않고 사이트에 대해 직접 테스트되며, 그 결과가 **Status** 열의 배지로 표시됩니다.

| 배지 | 의미 |
|---|---|
| 아직 확인되지 않음 | 아직 검사가 실행되지 않았습니다. 잠시 후 새로고침하세요 |
| 코드와 목적지가 표시된 확인됨 | 리디렉션이 작동 중이며 설정한 그대로 동작하고 있습니다 |
| 상태와 함께 적용되었지만 작동하지 않음 | 규칙은 작성되었지만 사이트가 다른 것을 반환했습니다 |

세 번째 배지가 조치가 필요한 항목입니다. 이는 설정은 되어 있지만 리디렉션이 적용되지 않고 있음을 의미하며, 표시된 상태 코드가 실제로 어떤 일이 일어났는지 알려줍니다.

저장 후 서버의 다른 설정이 같은 도메인을 사용하고 있다는 경고가 표시될 수도 있습니다. 이 경우 해당 충돌이 해결될 때까지 리디렉션이 적용되지 않으며, 메시지에는 해당 다른 설정의 이름이 표시됩니다. 이 메시지를 보고 의미를 잘 모르겠다면 지원팀에 문의하세요.

## 편집 및 삭제

각 행에는 편집 버튼과 삭제 버튼이 있습니다.

편집을 통해 목적지, 코드, 쿼리 설정을 변경할 수 있습니다. 소스는 고정되어 있습니다.

삭제를 클릭하면 확인을 요청하며 어떤 일이 일어날지 설명합니다. 해당 경로에 대한 요청은 더 이상 리디렉션되지 않고, 사이트가 그 경로에서 일반적으로 제공하는 것(흔히 404)을 반환합니다.

## 구조 재편 계획하기

많은 수의 URL을 이동하기 전에, 약간의 순서 정리만으로도 많은 고생을 덜 수 있습니다.

1. 사이트맵이나 분석 도구에서 **현재 URL 목록을 내보내서** 실제로 트래픽이 발생하는 URL이 무엇인지 파악합니다.
2. **이전 URL과 새 URL을 매핑**하여, URL당 한 줄씩 작성합니다. 접두사를 공유하는 항목은 그룹으로 묶습니다.
3. **그룹에는 와일드카드를 사용하세요.** `/blog/*` 규칙 하나가 200개의 정확 일치 규칙보다 낫고, 시간이 지나도 어긋나지 않습니다.
4. 패턴을 따르지 않는 예외 사항에 대해 **정확 일치 규칙을 추가합니다.**
5. **각 형태를 한 번씩 테스트**한 다음, 배지를 확인합니다.
6. 이후 [사이트 트래픽 분석](https://support.kapsulehost.com/ko-kr/site-analytics)에서 **4xx 수치를 지켜보세요.** 404 비율이 올라간다면 무언가 놓친 것입니다.

> **Tip:** 놓친 부분에 대한 안전망으로 브랜드가 적용된 404 페이지를 추가하세요. 막다른 길을 사이트로 돌아오는 경로로 바꿔줍니다. [사용자 지정 오류 페이지](https://support.kapsulehost.com/ko-kr/site-error-pages)를 참조하세요.

## 문제 해결

**리디렉션이 작동하지 않습니다.** 배지를 확인하세요. 적용되었지만 작동하지 않는다고 표시되면 반환된 상태 코드를 확인하세요. 200은 보통 다른 무언가가 요청에 먼저 응답했음을 의미하며, 흔히 애플리케이션 자체인 경우가 많습니다.

**작동은 하지만 잘못된 URL로 이동합니다.** 체인이 있는지 확인하세요. 여러분의 규칙이 다른 규칙이나 애플리케이션이 다시 리디렉션하는 경로로 트래픽을 보내고 있을 수 있습니다. 체인은 느리고 검색 엔진을 혼란스럽게 만듭니다. 첫 번째 규칙이 최종 목적지를 직접 가리키도록 하세요.

**와일드카드가 모든 것을 한 페이지로 보냅니다.** 목적지에 `$1`이 빠져 있습니다. 이것이 없으면 모든 캡처가 같은 대상으로 합쳐집니다.

**삭제한 리디렉션이 브라우저에서 여전히 작동합니다.** 이전에 301을 따라갔고 브라우저가 이를 캐시했습니다. 비공개 창에서 테스트하여 규칙이 정말로 사라졌는지 확인하세요.

**쿼리 매개변수가 사라집니다.** 해당 규칙에서 **쿼리 문자열 보존**이 꺼져 있습니다. 편집하여 다시 켜세요.

**리디렉션이 너무 많거나 루프가 발생합니다.** 두 규칙이 서로를 가리키고 있거나, 한 규칙이 자기 자신의 소스 패턴과 일치하는 경로를 가리키고 있습니다. 루프의 한쪽을 제거하세요.

## 관련 페이지

- 아무것도 일치하지 않을 때 방문자가 보게 되는 화면을 위한 [사용자 지정 오류 페이지](https://support.kapsulehost.com/ko-kr/site-error-pages)
- 구조 재편 후 3xx 및 4xx 수치를 지켜보기 위한 [사이트 트래픽 분석](https://support.kapsulehost.com/ko-kr/site-analytics)
- 경로를 이동하는 대신 잠그기 위한 [사이트 비밀번호 보호](https://support.kapsulehost.com/ko-kr/site-password-protect)
