최근 한 친구가 웹사이트를 만들고 SSL 인증서를 적용하여 사이트 전체에 HTTPS 암호화를 활성화했습니다. 그런데 설정을 완료한 후에도 HTTP로 접속할 수 있다는 사실을 발견했고, 이로 인해 사용자가 HTTPS 암호화 모드로 강제 진입할 수 없었습니다.
나중에 그 친구가 문제 해결을 도와달라고 요청해 와서, 바이두에서 검색한 해결 방법을 참고해 보았습니다. 하지만 모두 사용할 수 없었고, 301 리디렉션이 반복되어 웹사이트가 열리지 않았습니다. 그래서 의사 정적 관련 문서를 살펴본 후 .htaccess의 리디렉션 규칙을 작성하여 HTTP 접속을 HTTPS로 강제 전환하도록 구현했습니다.
중요 안내: 리디렉션 우선순위를 보장하려면 반드시 코드를
.htaccess파일 내용의 맨 앞에 넣어야 합니다. 기존 규칙과 중복되는 경우에는 4~5줄만 작성하면 됩니다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
</IfModule>
위 코드를 .htaccess에 저장하세요. 구현되지 않는 경우에는 notepad++ 편집기로 파일을 저장해 보세요.