Wymusić przekierowanie z http na https w apache2 możemy na dwa sposoby:
Za pomocą .htaccess:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=permanent,L]
W pliku konfiguracji domeny http: (/etc/apache2/sites-available)
gdy mamy kilka domen:
<VirtualHost *:80>
# tutaj moga byc inne rzeczy
RewriteEngine On
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>
gdy mamy jedna domenę:
<VirtualHost *:80>
# tutaj moga byc inne rzeczy
RewriteEngine On
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>
Zobacz też, jak włączyć mod_rewrite potrzebny do działania:
[....] Starting web server: apache2Syntax error on line 34 of /etc/apache2/sites-enabled/000-default:
RewriteRule: unknown flag 'END'
Action 'start' failed.
The Apache error log may have more information.