.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
'얕고넓은지식 > linux' 카테고리의 다른 글
그누보드5 가입된 회원아이디가 아니거나 비밀번호가 틀립니다. (0) | 2021.12.26 |
---|---|
Rocky linux "error file : /install/install_db.php" 그누보드 영카드 youngcart5.3.3.1.tar 설치하기 (0) | 2021.12.26 |
그누보드 5 사용을 위한 php gd 라이브러리 설치 (0) | 2021.12.26 |
rocky linux mysql 백업 / 복구 DB전체 백업 복구 (0) | 2021.12.26 |
rocky linux phpmyadmin 설치방법 (1) | 2021.12.26 |
Rocky linux SSH 접속가능 / 포트 변경하는 방법 (0) | 2021.12.25 |
Let’s Encrypt 홈페이지 인증서 SSL(https) 적용 (0) | 2021.12.20 |
rocky linux 8에...ssl 인증서 https 가능하게 만들어보자 Let's Encrypt SSL 무료 인증서로 Apache (0) | 2021.12.19 |
rocky linux 웹 서버설치 한방에 따라하기 (0) | 2021.12.17 |
리눅스 CPU 온도체크 기록하기 (0) | 2021.12.13 |