无法从 http 重定向到 https

无法从 http 重定向到 https

我确信这个问题已经被回答了一百多次(因为我几乎已经读完了所有答案),但我无法使我的 apache2 重定向正常工作。

我对 Linux 一窍不通,目前正尝试建立一个网站。该网站已在 https 下可用,并拥有证书。

端口 80 上的错误请求

/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 文档更多细节:

相关内容