.htaccess 파일로 모든 페이지를 강제로 https 리다이렉트 시키고 싶습니다.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

이렇게 .htaccess를 설정하면
"리디렉션한 횟수가 너무 많습니다." 라는 오류 메세지가 뜹니다. 어떻게 해야 할까요?
  • Lv36

    1. %{HTTPS} off를 %{HTTPS} !on으로 바꿔 보세요.

    2. 마지막 줄 맨 끝에 [L]을 붙여 보세요.

    3. 클라우드플레어를 사용하시거나 호스팅 환경에 따라서는 %{HTTPS} 조건이 안 먹힐 수도 있습니다. 이 때는 아래의 한 줄을 중간에 추가해 주어야 합니다.

    RewriteCond %{HTTP:X-Forwarded-Proto} !https

  • Lv36 ? Lv4
    1번~3번을 다 적용을 했는데도 "리디렉션한 횟수가 너무 많습니다" 라고 뜨네요.
    다만 1번에서 !on 대신 on으로 입력하면 접속은 되지만 리다이렉션이 되지 않고요. 어떻게 해야 할까요?
  • ? Lv4 Lv36
    1번을 원상복구(off)하고 2,3번만 적용해 보세요.
  • Lv36 ? Lv4
    말씀하신 대로 하니 404에러가 뜨네요.
    내일 호스팅사에 문의를 해 보아야 될 것 같습니다.

    답변 감사합니다!
  • Lv8
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^ - [E=protossl]
    RewriteCond %{HTTPS} on
    RewriteRule ^ - [E=protossl:s]
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    </IfModule>
  • Lv8 ? Lv4
    말씀하신대로 해도 안되네요. 딥변 감사합니다.
  • RewriteEngine on 
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^ https://www.example.com%{REQUEST_URI} [NE,L,R]

     

    이렇게 해보세요. 맨아래 'https://www.~~~~~' 여기엔 도메인주소 입력하시구요. 

     

     

    만약 영원히(?) https://로 이용할 계획이라면.. 아래와 같이 하시면됩니다. 주의하셔야 할게.. 아래와 같이 할 경우 http://기존 도메인은 이제 못쓴다고 봐야 됩니다. 계속 https:// 로 이용할거면 상관없구요.

     

    RewriteEngine On

    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

  • ? Lv4
    말씀하신 대로 적용을 해도 리디렉션 횟수가 많다고 하네요. 답변 감사합니다.
  • Lv36
    다 해봐도 안된다면 서버 환경이 꽤 특이한가 봅니다...
  • Lv12
    뜬금 없지만
    https://abc.com => https://www.abc.com 으로 리디렉션 시키는 방법 있을까요?
    이상하게 443포트에선 리디렉션 작동이 안되더라구요.
  • Lv12 ?
    php에서는 모르겠지만...

    Nginx 서버설정에서는 가능합니다.

    https://www.wsgvet.com/home/513