我有一个虚拟主机设置在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
似乎是对我来说足够的工作。