我确信这个问题已经被回答了一百多次(因为我几乎已经读完了所有答案),但我无法使我的 apache2 重定向正常工作。
我对 Linux 一窍不通,目前正尝试建立一个网站。该网站已在 https 下可用,并拥有证书。
/etc/apache2/ports.conf
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
etc/apache2/sites-available/mydomainname.conf
NameVirtualHost *:80
NameVirtualHost <mydomainname>:443
<VirtualHost *:80>
ServerName <mydomainname>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTPS_HOST}%{REQUEST_URI} [R,L]
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost _default_:443>
ServerName <mydomainname>
DocumentRoot /var/www/html
SSLEngine On
</VirtualHost>
sudo a2ensite <mydomainname>.conf
如果这很重要,我也已经执行了。
答案1
:443 中缺少一些重要指令VirtualHost
。未指定 SSL 证书文件和私钥。
该VirtualHost
指令应如下所示:
Listen 443
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile "/path/to/www.example.com.cert"
SSLCertificateKeyFile "/path/to/www.example.com.key"
</VirtualHost>
查看官方Apache 文档更多细节: