[Apache2] http -> https 리다이렉트

작업환경
* Ubuntu 20.04 LTS
* Apache2

1. 아파치 설정 파일 (httpd.conf) 경로찾기

root@dev.mingsayz.com:~# apache2 -V | egrep "(HTTPD\_ROOT|SERVER\_CONFIG\_FILE)"
 -D HTTPD_ROOT="/etc/apache2"
 -D SERVER_CONFIG_FILE="apache2.conf"

두 행을 조합하면 /etc/apache2/apache2.conf 경로가 나옴

즉, 아파치 httpd 설정은 ‘/etc/apache2/apache2.conf’ 여기서 하면 됨

<VirtualHost *:80>
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</VirtualHost>

R,L] 은 무엇인가? R은 강제 Redirect, L은 Last RewriteRule 이라고 이해하면 된다. 


May 21 13:11:27 mingsayz.cafe24.com systemd[1]: Starting The Apache HTTP Server...
May 21 13:11:27 mingsayz.cafe24.com apachectl[517147]: AH00526: Syntax error on line 72 of /etc/apache2/apache2.conf:
May 21 13:11:27 mingsayz.cafe24.com apachectl[517147]: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not i>
May 21 13:11:27 mingsayz.cafe24.com apachectl[517134]: Action 'start' failed.
May 21 13:11:27 mingsayz.cafe24.com apachectl[517134]: The Apache error log may have more information.
May 21 13:11:27 mingsayz.cafe24.com systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
May 21 13:11:27 mingsayz.cafe24.com systemd[1]: apache2.service: Failed with result 'exit-code'.
May 21 13:11:27 mingsayz.cafe24.com systemd[1]: Failed to start The Apache HTTP Server.

상기와 같은 에러가 난다면, rewrite 설정이 안되어있는 것이다.

$ sudo a2enmod rewrite
$ sudo systemctl restart apache2

rewrite 설정을 해주고, 아파치를 재시작해주면 끝!

만약 /login으로 들어오는 요청에 대해서만 https로 포워딩하고싶다면,

<VirtualHost *:80>
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule ^/login(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</VirtualHost>

요렇게 하면 된다.

그럼 20000