当域以 开头时,Apache2 不会根据其中一条规则默认将 http 重定向到 https http://www
。我的域使用 certbot。
000-default.conf
- 已禁用
https://domain.com/
- 正确加载
https://www.domain.com/
- 正确加载
http://domain.com
- 正确重定向
http://www.domain.com
- 加载 Apache2 Ubuntu 默认页面
我尝试了许多组合,请查看我当前的 vhost 文件设置。
我的/var/www/html/.htaccess
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [NC,R=301,L]
我的/etc/apache2/sites-available/my_project.conf
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.domain.com [OR]
RewriteCond %{SERVER_NAME} =domain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
我的/etc/apache2/sites-available/my_project-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName domain.com
ServerAlias www.domain.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
#django app directory setup
#django app WSGI setup
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/www.domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.domain.com/privkey.pem
</VirtualHost>
</IfModule>
<IfModule mod_ssl.c>
<VirtualHost *:80>
也许我遗漏了一些东西,您能给我指明正确的方向吗?