我刚刚在我的服务器上安装了 SSL 证书。
然后,它为我的域上端口 80 上的所有流量设置重定向,以将其重定向到端口 443。
换句话说,我所有的流量现在都被重定向到该页面的http://example.com
适当版本。https://example.com
重定向在我的 Apache 虚拟主机文件中完成,如下所示...
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
我的问题是,使用 SSL 有什么缺点吗?
由于这不是 301 重定向,切换到 后我是否会失去搜索引擎中的链接汁/排名https
?
非常感谢您的帮助。我一直想在服务器上设置 SSL,只是为了练习一下,我终于决定今晚就这么做。到目前为止,它似乎运行良好,但我不确定在每个页面上使用它是否是个好主意。我的网站不是电子商务网站,也不处理敏感数据;它主要是为了美观和安装它以供学习的快感。
更新问题
奇怪的是,由于 Bing 现在到处都使用 HTTPS,因此它从我的网站创建了这个截图...
答案1
该[R]
标志本身就是一个302
重定向 ( Moved Temporarily
)。如果您确实希望人们使用您网站的 HTTPS 版本(提示:您确实希望如此),那么您应该使用[R=301]
永久重定向:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
A301
保留你所有的 google-fu 和辛苦获得的网页排名完好无损的. 确保mod_rewrite
已启用:
a2enmod rewrite
回答您的确切问题:
将 http 重定向到 https 不好吗?
当然不是。它非常好。
答案2
虽然我支持仅使用 SSL 的网站,但我认为一个缺点是,根据您的网站设计,开销会很大。我的意思是,例如,如果您在 img 标签中提供大量单独的图像,这可能会导致您的网站运行速度慢很多。我建议任何使用仅使用 SSL 的服务器的人确保它们在以下方面工作正常。
- 检查整个网站的内部链接,并确保如果您在链接中指定自己的域名,它们都使用 HTTPS,这样您就不会导致自己的重定向。
- 将您的域名更新
<meta property="og:url"
为使用 https 版本。 - 如果您
<base href=
再次使用,请更新以使用 HTTPS。 - 安装SPDY 协议如果可能的话
- 确保尽可能使用 CSS 图像精灵,以减少请求数量。
- 更新您的站点地图以指示 https 状态,以便蜘蛛随着时间的推移了解这一变化。
- 更改搜索引擎偏好设置(如 Google 网站管理员工具)以首选 HTTPS
- 尽可能将任何静态媒体卸载到 HTTPS CDN 服务器。
如果解决了上述问题,那么我怀疑您会遇到很多问题。
答案3
如果您已经设置了 https,那么您应该在网站上的任何地方使用它。这样可以避免混合内容问题的风险,如果您拥有所需的工具,为什么不让整个网站都安全呢?
关于从 http 重定向到 https,答案并不是那么简单。
重定向将为您的用户带来更多便利,他们只需输入 whateversite.com 即可重定向到 https。
但是,如果用户有时处于不安全的网络(或接近特洛伊·亨特和他的菠萝)? 然后用户将请求http://whateversite.com出于旧习惯。这是 http。这可能会受到损害。重定向可能指向https://whateversite.com.some.infrastructure.long.strange.url.hacker.org。对于普通用户来说,这看起来是合法的。但流量可能会被拦截。
因此,我们有两个相互竞争的要求:用户友好和安全。幸运的是,有一种补救措施,称为HSTS 标头。有了它,您可以启用重定向。浏览器将移至安全站点,但由于 HSTS 标头也记住了它。当用户在该不安全的网络上输入 whateversite.com 时,浏览器将立即转到 https,而无需通过 http 重定向。除非您处理非常敏感的数据,否则我认为这是大多数站点在安全性和可用性之间的公平权衡。(当我最近设置一个处理医疗记录的应用程序时,我全部使用 https 而没有重定向)。不幸的是,Internet Explorer 不支持 HSTS(来源),因此如果您的目标受众主要使用 IE,并且数据敏感,您可能需要禁用重定向。
因此,如果您的目标不是 IE 用户,请继续使用重定向,但也要启用 HSTS 标头。
答案4
哇!将 HTTP 重定向到 HTTPS 是一件非常好的事情,我看不出它有什么缺点。
只需确保您的客户端拥有正确的 CA,即可避免浏览器中出现有关证书的非用户友好的警告。
此外,您设置 Apache 重定向到 HTTPS 的方式似乎没问题。