> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 정적 배포 구성

> 정적 배포에서 HTTP 헤더, 라우팅 규칙 및 URL 재작성을 구성하는 방법을 알아보세요.

이 가이드에서는 다음과 같은 웹 서버 수준의 구성을 다룹니다:

* [응답 헤더 추가](#add-response-headers)
* [사용자 정의 404 페이지 만들기](#create-a-custom-404-page)
* [URL 경로 재작성 정의](#define-url-path-rewrites)

## 응답 헤더 추가

사용자 정의 **응답 헤더**를 사용하면 특정 경로와 일치하는 요청에 HTTP 헤더 지시를 추가할 수 있습니다.
응답 헤더는 브라우저가 요청한 콘텐츠와 어떻게 상호작용할지 지시하는 이름-값 쌍입니다.

예를 들어, `Access-Control-Allow-Origin` 헤더를 지정하여 브라우저가 해당 페이지에서 접근할 수 있는 도메인을 명시할 수 있습니다.
이 항목을 생성하려면 Replit App의 루트 디렉토리에 있는 `.replit` 파일에 다음을 추가하세요:

```
[[deployment.responseHeaders]]
path = "/*"
name = "Access-Control-Allow-Origin"
value = "origin"
```

이 응답 헤더는 다음 매개변수를 포함합니다:

* **path**: 요청된 리소스와 일치하는 URL 경로 패턴
* **name**: HTTP 헤더 이름
* **value**: HTTP 헤더의 값

`.replit` 파일에 여러 `deployment.responseHeaders` 항목을 추가할 수 있습니다.

구성 업데이트를 적용하려면 Replit App을 다시 게시하세요.

#### 예약된 헤더

Replit은 다음 HTTP 헤더를 예약하며 사용자가 구성할 수 없습니다.

```text [expandable] theme={null}
Accept-Ranges
Age
Allow
Alt-Svc
Connection
Content-Encoding
Content-Length
Content-Range
Date
Location
Server
Set-Cookie
Trailer
Transfer-Encoding
Upgrade
```

<Tip>
  HTTP 헤더에 대해 자세히 알아보려면 MDN 웹 문서의

  <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers" target="_blank">
    HTTP headers
  </a>

  를 참조하세요.
</Tip>

## 사용자 정의 404 페이지 만들기

사용자 정의 404 페이지는 사용자가 게시된 앱의 파일이나 규칙과 일치하지 않는 URL 경로를 요청할 때 표시됩니다.

사용자 정의 404 페이지를 추가하려면 Replit App의 루트 디렉토리에 `404.html`이라는 파일을 만들고 페이지 내용을 작성하세요.

사용자가 존재하지 않는 URL 경로에 접근하려고 하면 사용자 정의 404 페이지의 렌더링된 HTML이 표시됩니다.

## URL 경로 재작성 정의

URL 재작성을 정의하여 Replit App이 처리하기 전에 요청의 URL 경로를 변경할 수 있습니다.
원래 URL은 브라우저에 그대로 표시되지만 서버는 재작성 규칙에 정의된 리소스를 로드합니다.

예를 들어, `/app`으로 시작하는 모든 요청이 `/app/index.html` 파일의 내용을 로드하도록 지정할 수 있습니다.
이 항목을 생성하려면 Replit App의 루트 디렉토리에 있는 `.replit` 파일에 다음을 추가하세요:

```
[[deployment.rewrites]]
from = "/app/*"
to = "/app/index.html"
```

* **from**: 요청된 리소스와 일치하는 URL 경로 패턴
* **to**: 재작성된 경로로, 정적 배포의 파일에 해당합니다.

`.replit` 파일에 여러 `deployment.rewrites` 항목을 추가할 수 있습니다.
서버는 나열된 순서대로 항목을 해석하며 중복은 무시합니다.

구성 업데이트를 적용하려면 Replit App을 다시 게시해야 합니다.

다음 섹션에서는 URL 재작성 규칙의 제약 사항을 설명합니다.

### 경로 일치

재작성 규칙의 `from` 및 `to` 매개변수에는 다음 제약 사항이 적용됩니다:

* `*`가 없는 경우 정확히 일치해야 합니다
* `*`는 경로의 나머지 부분과 일치합니다
* `*`는 경로의 끝에만 사용할 수 있습니다
* `from` 매개변수에 `*`를 포함할 경우 `to` 매개변수에도 포함하여 경로의 일치하는 부분을 나타낼 수 있습니다

예를 들어, `.replit` 파일에 다음과 같은 재작성 규칙이 있다면:

```
[[deployment.rewrites]]
from = "/v1/*"
to = "/v2/*"
```

사용자가 `/v1/about-us.html` 경로를 방문하면 재작성 규칙에 의해 `/v2/about-us.html`에 있는 파일이 제공됩니다.

### 섀도잉

섀도잉은 재작성 규칙이 정적 배포의 파일과도 일치하는 URL 경로에 매칭될 때 발생합니다.
이 경우 클라우드 서버는 재작성 규칙을 무시하고 파일을 직접 제공합니다.

예를 들어, 게시된 앱에 다음 파일이 포함되어 있다고 가정합니다:

* `index.html`
* `about.html`

`.replit` 파일에 다음과 같은 재작성 규칙이 있다면:

```
[[deployment.rewrites]]
from = "/*"
to = "/index.html"
```

사용자가 `/register.html`을 방문하면 서버는 요청을 `/index.html`로 재작성하여 해당 파일을 제공합니다.
그러나 사용자가 `/about.html`을 방문하면 정적 배포에 해당 파일이 존재하므로 서버는 재작성 규칙을 무시하고 `about.html` 파일을 직접 제공합니다.

### 도메인 제한

재작성 규칙은 정적 배포의 기본 도메인에 대한 요청에만 적용되며,
정적 배포 내의 파일로만 리디렉션할 수 있습니다.
