본문 바로가기
WIKI 기술 지식 베이스

redir 지시문

원문 보기 위키 갱신

redir 지시문 (HTTP 리다이렉트)

redir 지시문은 클라이언트에게 HTTP 리다이렉트를 보내요. 조건에 맞는 요청을 그대로 거부하고 다른 URL로 다시 시도하도록 안내해요.

출처: Caddy 공식 문서

본문

클라이언트에게 HTTP 리다이렉트를 발행해요.

이 지시문은 조건에 맞는 요청을 그대로 거절하고, 클라이언트가 다른 URL에서 다시 시도해야 한다는 뜻이에요. 그래서 그 지시문 순서는 매우 앞쪽에 있어요.

문법 (Syntax)

redir [<matcher>] <to> [<code>]
  • ****는 대상 위치예요. 응답의 Location 헤더가 돼요.

  • ****는 리다이렉트에 사용할 HTTP 상태 코드예요. 다음 중 하나가 될 수 있어요:

    • 3xx 범위의 양의 정수, 또는 401

    • 일시적 리다이렉트인 temporary(302 Found, 기본값)

    • 영구 리다이렉트인 permanent(301 Moved Permanently)

    • 리다이렉트를 수행하는 HTML 문서를 쓰는 html(브라우저엔 유용하지만 API 클라이언트엔 아님)

    • 상태 코드 값이 담긴 placeholder

temporary와 permanent 모두 사용자 에이전트가 메서드를 바꿀 수 있게 해줘요(예: POST에서 GET으로). 두 번째 요청에서 메서드가 동일해야 한다면 307 Temporary Redirect와 308 Permanent Redirect 상태 코드를 사용해야 해요. Caddy는 자동 HTTP→HTTPS 리다이렉트에서 상태 코드로 308을 사용해요.

예시 (Examples)

모든 요청을 https://example.com으로 리다이렉트해요:

www.example.com {
	redir https://example.com
}

같은 동작이지만 기존 URI를 보존하도록 {uri} placeholder를 붙여요:

www.example.com {
	redir https://example.com{uri}
}

같은 동작이지만 영구 리다이렉트예요:

www.example.com {
	redir https://example.com{uri} permanent
}

기존 /about-us 페이지를 새로운 /about 페이지로 리다이렉트해요:

example.com {
	redir /about-us /about
	reverse_proxy localhost:9000
}

더 알아보기 (Learn more)