我在 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
对我来说似乎已经足够好了。