얕고넓은지식/linux

Rocky linux 서버 www/https 리디렉션 설정

쪽마 2021. 12. 25. 16:42

.htaccess 파일은 Apache 웹서버의 분산 설정파일입니다.

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]  

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

 

웹서버의 최상위 디렉터리에 .htaccess 파일을 생성해서 다음 규칙을 추가하면, 도메인으로 웹사이트 접속시 www 서브도메인과 https 암호화 연결로 리디렉션되도록 설정할 수 있습니다.

 

예를 들어 example.com 이라는 도메인을 웹브라우저에 입력시 https://www.example.com 으로 리디렉션되게 한다는 것이죠.


물론 www 서브도메인이 DNS 레코드에 있어야 하고, 해당 도메인에 SSL이 적용돼 있어야 합니다.

 

 

 

 

 

 

 

 

 

 

 

 

(301은 영구적인 이동, 302는 일시적인 이동을 나타내는데, htaccess 리라이트 구문에 기재를 해 놓지 않으면 302로 인식하기 때문에 301이라고 명시해줘야 합니다)

 

이게 영어로 찾아보면 거의 다 제대로 나와 있는데, 한국어로 찾아보면 그렇지 않네요

 

각설하고... 한마디로 설명하자면

 

.htaccess 파일 "최상단"에 다음과 같이 적어주면 됩니다.


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

이거 하나면 끝납니다.  

그런데 인터넷 찾아보면 다르게 적혀 있는 팁들이 많이 나오는데, 그것들에 대해 간단하게 살펴볼게요
  

1. RewriteCond %{HTTPS} on

- 잘못된 방식입니다. 문제는 이게 xe공홈 팁게시판에 올라와 있다는 것입니다. 해외 포럼 아무리 뒤져봐도 저렇게는 안 되어 있고 off라던지 !=on이라고 하라고 되어 있습니다.

 

실제로 해봐도 저렇게 하면 안 되고 off로 해야 되더군요. (RewriteCond %{HTTPS} !=on 이것도 됩니다)

 

 

2. RewriteRule 끝에 [R=301,L] 이 없는것

- R=301은 301 리디렉션이라는 뜻이고, L은 마지막이라는 뜻이라고 하더군요. 찾아보니 L은 반드시 필요한건 아니지만 R=301은 반드시 해줘야 합니다. 저게 빠지면 302 리디렉션이라고 감지합니다.

 

(실제로 제가 구글에 검색하면 나오는 모 블로그에 나와있는 거 그대로 적용했더니, 저게 빠져있는 바람에 그동안 302로 되어 있었더군요)

 

 

3. https://%{HTTP_HOST}$1

- 역시 잘못된 방식입니다. https://%{HTTP_HOST}/$1 이라고 해야 합니다. 그런데 "/"가 빠진 채로 %{HTTP_HOST}$1 라고 나와 있는데가 있더군요. 저렇게 하면 최상위 도메인까지만 되고 그 이하 페이지는 리다이렉트가 안됩니다.

 

(https://%{HTTP_HOST}/$1 이랑 https://%{HTTP_HOST}%{REQUEST_URI} 의 차이점은 모르겠습니다. 둘 다 잘 됩니다.)

 

 

4. 그 외

- https://(도메인)\.(도메인)/$1 [R=301,L] 이런 방식이 있는데, 이것도 잘 작동합니다.

 

(.*)이 아니라 ^(.*)$라고 되어 있는것도 많은데 별 차이는 없다고 하네요

참고페이지

https://xetown.com/tips/147293

 

SSL 도입으로 http -> https 변환시에 주소 리다이렉트 시키기

여기 계신 분들이라면 당연히 다 알고 계시겠지만 문제는 인터넷에 나와 있는 한국말로 된 팁들이 대부분 어딘가 빠져 있거나 허술하거나 잘못되어 있더군요 저도 그것들을 믿고 실행했다가 작

xetown.com

 

 

반응형