워드프레스 리다이렉트 루프 해결 — ERR_TOO_MANY_REDIRECTS 완벽 수정 가이드 (2026)

워드프레스 리다이렉트 루프 ERR_TOO_MANY_REDIRECTS 에러 화면

워드프레스 리다이렉트 루프 때문에 사이트가 완전히 먹통이 됐습니다. “pearsoninsight.com에서 리디렉션한 횟수가 너무 많습니다. ERR_TOO_MANY_REDIRECTS” — 이 에러 메시지를 보는 순간 심장이 철렁했죠. Cloudflare에 도메인을 연결하고, SSL을 설정하고, 워드프레스 주소를 HTTPS로 바꾸는 것까지는 순조로웠는데 갑자기 사이트도 안 열리고 관리자 페이지도 접속이 안 되는 상황이 벌어졌습니다. 이 글에서는 제가 직접 겪은 WP 리다이렉트 무한 반복의 원인과 해결 방법을 공유합니다.

워드프레스 리다이렉트 루프가 뭔가

리다이렉트 루프란 브라우저가 페이지를 요청할 때마다 서버가 “다른 주소로 가세요”라고 계속 튕기는 현상입니다. A 주소로 가면 B로 보내고, B로 가면 다시 A로 보내고 — 이걸 무한 반복하다가 브라우저가 “이거 끝이 없네” 하고 포기하면서 ERR_TOO_MANY_REDIRECTS 에러를 띄우는 겁니다.

이 오류는 특히 Cloudflare + SSL 설정 과정에서 자주 발생합니다. 도메인 연결하고 HTTPS 설정하는 것까지는 잘 되다가 갑자기 사이트 전체가 먹통이 되니까 당황할 수밖에 없죠.

워드프레스 리다이렉트 루프가 발생하는 원인

원인을 이해하려면 Cloudflare Flexible SSL 모드가 어떻게 동작하는지를 알아야 합니다.

Cloudflare Flexible SSL의 통신 구조

Flexible 모드에서는 방문자 → Cloudflare 구간만 HTTPS이고, Cloudflare → 서버 구간은 HTTP로 통신합니다. Cloudflare 공식 문서에서도 이 구조를 설명하고 있습니다. 그림으로 보면 이렇습니다.

방문자 ---(HTTPS)--- Cloudflare ---(HTTP)--- AWS EC2 서버

방문자는 HTTPS로 안전하게 접속하지만, 실제로 서버가 받는 요청은 HTTP입니다. 서버 입장에서는 항상 HTTP로 들어오는 거예요.

무한 루프가 발생하는 과정

여기서 문제가 시작됩니다. 워드프레스의 사이트 주소를 https://로 설정하면, 워드프레스는 이런 로직을 따릅니다.

  1. 방문자가 https://pearsoninsight.com에 접속
  2. Cloudflare가 서버에 HTTP로 요청을 전달
  3. 워드프레스: “지금 HTTP로 들어왔네? 사이트 주소가 HTTPS니까 HTTPS로 리다이렉트해야지!”
  4. 브라우저가 다시 https://pearsoninsight.com으로 이동
  5. Cloudflare가 또 서버에 HTTP로 전달
  6. 워드프레스: “또 HTTP네? 또 리다이렉트!”
  7. 2~6번이 무한 반복 → ERR_TOO_MANY_REDIRECTS

핵심은 이겁니다. Cloudflare가 HTTPS를 처리해주는데, 서버는 그 사실을 모른다는 거예요. 서버는 계속 HTTP로 요청이 들어온다고 생각하니까 끊임없이 HTTPS로 리다이렉트를 시도하고, 이게 무한 루프가 됩니다.

워드프레스 리다이렉트 루프 Cloudflare Flexible SSL 무한 루프 흐름도

워드프레스 리다이렉트 루프 해결 방법

해결 원리는 간단합니다. “원래 요청이 HTTPS였다”는 사실을 워드프레스에게 알려주면 됩니다. Cloudflare는 서버에 요청을 전달할 때 X-Forwarded-Proto: https라는 헤더를 같이 보냅니다. 이 헤더를 워드프레스가 인식하게 만들면 리다이렉트를 하지 않습니다.

SSH로 서버 접속

사이트가 먹통이니까 관리자 페이지에서 수정할 수 없습니다. SSH로 직접 서버에 접속해야 합니다.

ssh -i "키파일.pem" ubuntu@EC2퍼블릭IP

또는 AWS 콘솔 → EC2 → 인스턴스 선택 → 연결 → EC2 Instance Connect로 브라우저에서 접속할 수 있습니다.

wp-config.php 수정

sudo nano /var/www/html/wp-config.php

/* That's all, stop editing! */ 줄을 찾고, 그 위에 아래 코드를 추가합니다.

define('WP_HOME', 'https://내도메인.com');
define('WP_SITEURL', 'https://내도메인.com');
define('FORCE_SSL_ADMIN', true);

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
}

각 줄이 하는 일을 설명하면 이렇습니다.

  • WP_HOME / WP_SITEURL: 워드프레스 사이트 주소를 HTTPS로 강제 설정
  • FORCE_SSL_ADMIN: 관리자 페이지를 반드시 HTTPS로 접속하게 강제
  • HTTP_X_FORWARDED_PROTO 체크: Cloudflare가 보내는 헤더를 확인해서, 원래 HTTPS 요청이었으면 워드프레스에게 “이거 HTTPS야”라고 알려줌. 이 코드가 리다이렉트 루프를 끊는 핵심

Ctrl+O → 저장, Ctrl+X → 나가기.

Apache 재시작

sudo systemctl restart apache2

접속 확인

브라우저에서 쿠키를 삭제하거나 시크릿 모드https://내도메인.com에 접속해보세요. 정상적으로 사이트가 뜨면 해결된 겁니다. 기존 브라우저에서 안 되면 리다이렉트 캐시가 남아있는 것이니 Ctrl+Shift+Delete로 캐시와 쿠키를 삭제하고 다시 시도하세요.

워드프레스 리다이렉트 루프와 함께 발생하는 문제들

이 문제를 겪으면서 연쇄적으로 다른 문제들도 터졌습니다. 같은 상황이라면 아래도 함께 확인하세요.

문제 1: Mixed Content — 사이트 디자인이 깨짐

도메인을 연결하고 접속했더니 글 목록은 나오는데 CSS가 전혀 적용되지 않아서 디자인이 완전히 깨져 보였습니다. 로고 이미지도 안 나왔습니다. 원인은 데이터베이스에 이전 IP 주소(http://54.180.113.12)가 남아있어서 브라우저가 HTTP 리소스를 차단한 겁니다.

해결은 WP-CLI로 DB를 일괄 변환하면 됩니다. WP-CLI가 없으면 먼저 설치합니다.

# WP-CLI 설치 (홈 디렉토리에서 해야 Permission denied 안 남)
cd ~
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

# DB 일괄 변환
cd /var/www/html
wp search-replace 'http://이전IP' 'https://내도메인.com' --all-tables --allow-root
wp search-replace 'http://내도메인.com' 'https://내도메인.com' --all-tables --allow-root

문제 2: Rank Math 저장 안 됨

Mixed Content 때문에 Rank Math 플러그인이 API를 호출할 때도 http://로 요청을 보내서 브라우저가 차단했습니다. 포커스 키워드를 입력하고 저장을 눌러도 반응이 없었습니다. 위의 WP-CLI 일괄 변환과 wp-config.php 수정을 하면 함께 해결됩니다.

문제 3: 관리자 페이지 접속 불가

워드프레스 설정에서 사이트 주소를 바꾼 직후 DNS가 완전히 반영되기 전이라 관리자 페이지에 접속이 안 되는 상황도 겪었습니다. 이때는 SSH로 접속해서 wp-config.phpWP_HOMEWP_SITEURL을 직접 설정하면 복구됩니다. 이 방법은 WordPress 공식 문서에서도 안내하고 있습니다.

워드프레스 리다이렉트 루프 예방법

같은 실수를 반복하지 않으려면 Cloudflare + 워드프레스 도메인 연결 시 순서가 중요합니다.

순서 작업 주의사항
1 Cloudflare DNS에 A 레코드 추가 프록시(주황색 구름) 켜기
2 Cloudflare SSL → Flexible 설정
3 Edge Certificates → Always Use HTTPS, Automatic HTTPS Rewrites 켜기
4 wp-config.php에 X-Forwarded-Proto 코드 먼저 추가 이걸 먼저 해야 루프가 안 생김
5 워드프레스 주소를 https://로 변경 4번을 먼저 안 하면 루프 발생
6 WP-CLI로 DB 일괄 변환 http → https

핵심은 4번을 5번보다 먼저 하는 것입니다. wp-config.php에 Cloudflare 헤더 인식 코드를 먼저 넣어두고 나서 워드프레스 주소를 HTTPS로 바꾸면 리다이렉트 루프가 발생하지 않습니다.

워드프레스 리다이렉트 루프 해결 후 정상 작동하는 HTTPS 사이트

마무리 — 워드프레스 리다이렉트 루프, 원인만 알면 간단합니다

워드프레스 리다이렉트 루프는 겪는 순간에는 사이트가 완전히 먹통이 되니까 공포스럽지만, 원인을 알면 해결은 간단합니다. Cloudflare가 HTTPS를 처리하는데 서버가 그 사실을 모르기 때문에 발생하는 문제이고, wp-config.php에 X-Forwarded-Proto 헤더를 확인하는 코드 한 블록만 추가하면 끝입니다.

도메인 연결 전체 과정이 궁금하다면 워드프레스 도메인 연결 완전 가이드를 참고하고, 아직 워드프레스를 설치하지 않았다면 AWS EC2 워드프레스 설치 가이드부터 시작하세요. SEO 설정에서 막히고 있다면 Rank Math SEO 점수 올리는 법도 함께 읽어보세요.

댓글 남기기