我在以下网站上设置了一个网站:
https://foo.com
如果来自以下网址的流量,我希望如此:
http://foo.com
http://www.foo.com
https://www.foo.com
会自动重定向到那里。也就是说,如果有人在浏览器中键入三个URL中的一个,我希望它立即将显示的URL更改为https://foo.com
,我希望在服务器上的https://foo.com
上收到HTTPS请求,就像这个人打字https://foo.com
一样。
实现这一目标的哪种方法最好?我正在使用Apache。
SSL证书的签名是foo.com
而不是www.foo.com
,是否可以在不发出证书警告的情况下从https://www.foo.com
实现重定向?或者我是否需要获得www.foo.com
的第二个证书?
答案 0 :(得分:1)
所有非SSL站点都可以在vhost文件或.htaccess文件中使用重写进行重定向(假设你有* .foo.com是foo.com的服务器别名)。
您需要为每个拼写错误的ssl网址提供证书,否则当人们尝试连接到这些网址时,他们会收到证书错误。完成后,您可以重定向它们。
假设设置了服务器别名并且启用了mod_rewrite,这里是您需要的重写规则:
RewriteRule (.*) https://foo.com/$1 [R=301,L]
答案 1 :(得分:0)
<VirtualHost *:80>
ServerName foo.com
ServerAlias www.foo.com
DocumentRoot /var/www/foo
</VirtualHost>
<VirtualHost *:443>
ServerName foo.com
DocumentRoot /var/www/foo
SSLEngine on
SSLCertificateFile /etc/ssl/certs/certificate.crt
SSLCertificateKeyFile /etc/ssl/certs/app_foo_com.key
SSLCertificateChainFile /etc/ssl/certs/foo.ca.crt
ErrorLog /var/log/ssl_engine.log
</VirtualHost>