작업환경
* 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