使用 apache 将 http 重定向到 https 时出现问题

使用 apache 将 http 重定向到 https 时出现问题

我在 apache 中设置了一个虚拟主机,它仅适用于 SSL。它的设置如下:

<VirtualHost 8.8.8.8:443>
<IfModule mod_ssl.c>
        SSLCertificateFile /home/me/server.crt
        SSLCertificateKeyFile /home/me/server.pem
        SSLEngine on
        ServerName example.com
        SSLOptions StrictRequire
        SSLProtocol all -SSLv2
</IfModule>

DocumentRoot /me
ServerName example.com
<Location />
AllowOverride none
</Location>
RemoveHandler .cgi .pl .py .php4 .pcgi4 .php3 .phtml .pcgi .php5 .pcgi5
RemoveType .cgi .pl .py .php4 .pcgi4 .php3 .phtml .pcgi .php5 .pcgi5
</VirtualHost>

我想要做的是,当有人访问我的网站时,他们会被自动重定向到 https 版本。

在 VirtualHost 之外,我尝试监听端口 80,并重定向到安全版本,如下所示

监听 8.8.8.8:80 NameVirtualHost 8.8.8.8:443

永久重定向 /https://example.com/

然而,这显然导致了无限循环。

当 https 站点是 VirtualHost 时,重定向到站点的 https 版本的正确方法是什么?

答案1

这是我做的:

指定端口 80 虚拟主机,就像运行普通的非加密站点一样。在该虚拟主机的根目录中,只放置一个包含以下内容的 .htaccess 文件:

Redirect 301 / https://your-ssl-site.tld

对我来说似乎已经足够好了。

相关内容