问题redirecthttp到https与Apache

我有一个虚拟主机设置在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> 

我想要做的就是当有人进入我的网站时,他们会自动redirect到https版本。

在VirtualHost之外,我尝试在端口80上进行监听,然后redirect到安全版本,就像这样

听8.8.8.8:80 NameVirtualHost 8.8.8.8:443

redirect永久/ https://example.com/

然而,这显然造成了一个无限循环。

当https站点是VirtualHost时,什么是redirect到https站点的正确方法?

这就是我所做的:

指定端口80虚拟主机,例如,您将运行正常的非encryption站点。 在该虚拟主机的根目录中,除了一个包含以下内容的.htaccess文件:

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

似乎是对我来说足够的工作。