리다이렉트 규칙 생성기
이전 주소 → 새 주소 목록으로 nginx·Apache(.htaccess)·Netlify 리다이렉트 규칙을 만듭니다. www 통일, https 강제, 도메인 전체 이전 모드 지원.
상태 코드 고르기
| 코드 | 뜻 | 언제 쓰나 | SEO |
|---|---|---|---|
| 301 | 영구 이동 | 사이트 개편, 도메인 이전, 주소 구조 변경 | 기존 평가가 새 주소로 넘어감. 개편이면 이걸 쓰세요 |
| 302 | 임시 이동 | 이벤트 페이지, 점검 안내, A/B 테스트 | 옛 주소를 계속 색인함. 개편에 쓰면 사고 |
| 308 | 영구 (메서드 유지) | API 등 POST 요청을 그대로 넘겨야 할 때 | 301과 동일하게 취급됨 |
| 307 | 임시 (메서드 유지) | HSTS 내부 리다이렉트 등 | 302와 동일하게 취급됨 |
리다이렉트 규칙 생성기란?
사이트를 개편하거나 도메인을 옮기면 예전 주소로 들어오는 방문자와 검색엔진을 새 주소로 넘겨 줘야 합니다. 이때 301(영구 이동)로 제대로 넘기지 않으면 그동안 쌓은 검색 순위가 그대로 증발합니다. 이 도구는 이전 주소와 새 주소 목록을 표에 넣으면 nginx·Apache(.htaccess)·Netlify 세 가지 형식의 규칙을 동시에 만들어 줍니다. www 통일이나 http→https 강제처럼 사이트 전체에 거는 규칙은 전용 모드로 한 번에 뽑을 수 있고, /old/글번호 → /new/글번호 같은 패턴 이전을 위한 정규식 규칙도 지원합니다.
사용 방법
- 형식을 고릅니다 — nginx, Apache(.htaccess), Netlify 중 서버에 맞는 것을 선택합니다.
- 개별 이전이라면 표에 이전 경로와 새 주소를 한 줄씩 넣습니다. 붙여넣기 모드에서는 "이전주소 새주소" 를 한 줄에 적어도 됩니다.
- 301(영구)인지 302(임시)인지 고릅니다. 개편·도메인 이전은 301이 정답입니다.
- 사이트 전체 규칙이 필요하면 "도메인 전체 이전" 모드에서 www 통일·https 강제·도메인 변경을 설정합니다.
- 생성된 규칙을 설정 파일에 붙여넣고 적용합니다. nginx는 nginx -t 로 문법 검사 후 reload 하세요.
리다이렉트 규칙 생성기 사용 가이드
실제 작업에서 이 도구를 어떻게 쓰는지, 무엇을 조심해야 하는지 정리했습니다.
302로 개편했다가 벌어지는 일
주소가 영영 바뀐 거라면 301입니다. 이건 취향 문제가 아닙니다. 301은 "옛 주소는 잊고 새 주소를 쓰라"는 신호라 검색엔진이 색인을 새 주소로 옮기고 기존 평가를 넘겨줍니다. 302는 "잠깐 다른 데 다녀오라"는 뜻이라 검색엔진은 옛 주소를 계속 색인해 둡니다.
개편에 302를 쓰면 몇 달 뒤 이런 상태가 됩니다. 검색결과에는 옛 주소가 계속 뜨고, 새 주소는 색인되지 않으며, 새로 쌓은 링크의 평가가 옛 주소에 갇혀 있습니다. 나중에 301로 고쳐도 다시 옮겨지는 데 또 시간이 걸립니다.
반대로 되돌릴 계획이 있는데 301을 쓰는 것도 위험합니다. 브라우저는 301을 캐시에 오래 저장하기 때문에, 규칙을 지워도 방문자 브라우저는 한동안 계속 새 주소로 갑니다. 이벤트 페이지나 점검 안내처럼 곧 되돌릴 것이라면 302를 쓰세요.
체인과 루프 — 이 도구가 잡아 주는 것
리다이렉트 체인은 A→B→C처럼 이어지는 상태입니다. 개편을 두 번 하면 자연스럽게 생깁니다. 첫 개편에서 /old→/new 를 걸어 뒀는데, 두 번째 개편에서 /new→/final 을 추가하면 옛 주소로 들어온 사람은 두 번 튕깁니다.
구글은 대체로 몇 단계까지는 따라가지만, 단계마다 왕복이 생겨 느려지고 크롤링 예산이 낭비됩니다. 모바일에서는 체감 속도 차이가 큽니다. 해법은 간단합니다 — 옛 규칙의 목적지를 최종 주소로 직접 바꿉니다. /old→/final, /new→/final 두 줄로 만들면 됩니다.
이 도구는 입력한 규칙 안에 체인이 있으면 경고하고 실제 경로를 보여 줍니다. 자기 자신으로 가는 무한 루프도 잡습니다. 다만 이미 서버에 적용되어 있는 옛 규칙과의 체인은 알 수 없으니, 적용 전에 기존 설정 파일을 함께 확인해야 합니다.
# 실제로 몇 단계를 거치는지 확인 — -L 로 끝까지 따라갑니다
curl -sIL https://example.com/old-page | grep -E "^HTTP|^[Ll]ocation"
# 결과 예시 (체인 2단계 — 고쳐야 함)
# HTTP/2 301
# location: https://example.com/new-page
# HTTP/2 301
# location: https://example.com/final-page
# HTTP/2 200
사이트 개편 시 URL 이전 절차
순서를 지키면 순위 손실을 최소화할 수 있습니다. 실무에서 검증된 순서입니다.
- 옛 주소를 빠짐없이 모읍니다 — 서치 콘솔의 페이지 보고서(색인된 주소), 기존 sitemap.xml, 웹서버 access log, 네이버 서치어드바이저를 합칩니다. 로그를 쓰면 검색엔진이 모르는 주소까지 잡힙니다.
- 유입이 많은 주소부터 1:1로 매핑합니다. 시간이 없으면 상위 20%만 정확히 매핑해도 트래픽의 대부분을 지킵니다.
- 엑셀 두 열(옛 주소 / 새 주소)로 만든 매핑 표를 그대로 복사해 이 도구에 붙여넣습니다.
- 규칙을 스테이징에 먼저 적용해 curl -I 로 몇 개 찍어 본 뒤 운영에 반영합니다(nginx -t → systemctl reload nginx).
- 사이트맵을 새 주소 목록으로 교체해 다시 제출하고, 내부 링크도 새 주소로 직접 고칩니다. 자기 사이트 안에서 리다이렉트를 타게 두지 마세요.
- 도메인까지 바꿨다면 서치 콘솔의 주소 변경 도구를 씁니다. 옛 도메인은 최소 1년 이상 301을 건 채로 유지합니다.
- 몇 주간 서치 콘솔의 색인 현황과 404 오류를 지켜보며 빠뜨린 주소를 추가합니다.
서버별로 다른 함정
같은 규칙이라도 서버마다 걸리는 지점이 다릅니다.
- nginx — location 은 쿼리스트링(?id=3)을 매칭하지 못합니다. 이 도구는 ?가 든 주소를 $request_uri 를 비교하는 if 문으로 만드는데, 이 블록은 server 안·location 밖에 둬야 합니다.
- nginx 도메인 정규화 — https 요청을 리다이렉트하려면 그 도메인의 SSL 인증서가 먼저 있어야 합니다. www 인증서 없이 www→non-www 규칙만 넣으면 방문자는 리다이렉트 전에 인증서 오류를 봅니다. 도메인 이전도 마찬가지로 옛 도메인 인증서를 계속 갱신해야 합니다.
- Apache — .htaccess 는 재시작 없이 즉시 적용되지만, 안 먹으면 AllowOverride All 과 a2enmod rewrite 를 확인하세요. 규칙이 수백 개면 요청마다 파일을 읽으므로 가상호스트 설정으로 옮기는 편이 낫습니다.
- Netlify — https 강제와 www 통일은 대시보드의 Domain management 에서 처리하는 것이 정석이라 _redirects 에 넣을 필요가 없습니다. 위에서부터 먼저 맞는 규칙 하나만 적용되며, 실제 파일보다 우선하려면 상태 코드 뒤에 ! 를 붙입니다.
- 정규식 모드 — 규칙은 위에서부터 검사됩니다. /* 처럼 넓게 잡는 패턴을 위에 두면 아래 규칙이 영영 실행되지 않습니다. 좁은 규칙을 먼저 두세요.
자주 묻는 질문
301과 302 중 뭘 써야 하나요?
주소가 영영 바뀐 거라면 301입니다. 검색엔진이 새 주소로 색인을 옮기고 기존 평가를 넘겨 줍니다. 302는 이벤트 페이지처럼 곧 원래대로 돌아올 때만 쓰세요. 개편에 302를 쓰면 검색엔진이 옛 주소를 계속 붙들고 있습니다.
리다이렉트하면 검색 순위가 유지되나요?
301이면 대체로 유지됩니다. 다만 옛 페이지와 새 페이지의 내용이 대응해야 합니다. 모든 옛 주소를 새 홈으로 몰아 보내면 구글은 이를 소프트 404로 취급해 평가를 넘겨주지 않습니다. 1:1로 대응시키는 것이 원칙입니다.
nginx 규칙은 어디에 넣나요?
server 블록 안에 넣습니다. 이 도구는 정확한 매칭엔 location = 을, 패턴엔 rewrite ... permanent 를 씁니다. 적용 전 nginx -t 로 문법을 확인하고 systemctl reload nginx 로 무중단 반영하세요.
리다이렉트를 몇 단계까지 걸어도 되나요?
A→B→C처럼 이어지는 체인은 되도록 없애세요. 구글은 5단계 정도까지 따라가지만 그 과정에서 크롤링 예산이 낭비되고 속도도 느려집니다. 옛 규칙이 쌓였다면 최종 목적지로 직접 가도록 정리하는 편이 낫습니다.
입력한 주소 목록이 서버로 전송되나요?
아니요. 규칙 생성은 전부 브라우저에서 이뤄지며 주소 목록은 서버로 전송되지 않습니다.