考虑一个页面,http://example.com
该页面可以公开查看,也可以在用户验证时查看。现在,假设您在用户登录到您的网站时为每个页面启用HTTPS,但仅当他们登录时才启用。http://example.com
现在,您的页面将变为https://example.com
所有登录用户的页面。如果该登录用户喜欢您的页面并决定通过博客文章或社交媒体网站链接到该页面,则他们很有可能会使用URL的HTTPS版本。
从SEO角度来看,您如何避免两个URL之间出现重复内容问题?
如果用户到达HTTPS URL但未登录或没有帐户,该怎么办?是否应该重定向到HTTP版本?如果是这样,您将如何处理?
我的直觉是,对于所有可以同时在公共和登录状态下查看的页面,该页面应首先检测用户是否已登录。如果登录,则该页面仍为HTTPS或使用从HTTP版本到HTTPS的302重定向。如果用户未登录并且到达URL的HTTPS版本,则它将使用301重定向到HTTP版本。但是,我欢迎更优雅或更有效的解决方案。
编辑:我假设如果用户登录,则每个URL都应该是HTTPS(或者至少应该是一个选项),但是当我做更多研究时,也许这个假设是错误的。我看到人们实现它的方式是,他们只对发送和接收敏感数据的页面启用HTTPS:登录,购物车结帐,用户配置文件管理等。我试图找出哪种模型是最好的。
显然,Google Mail通过用户个人资料中的设置为用户提供了是否在每个页面上使用HTTPS的选项。当然,这是一个选择,但是我仍然需要解决所有身份验证状态的公开页面的行为。
因为我正在构建一个可供其他人使用的内容管理系统,所以我需要确保正确无误。网站所有者应该可以使用哪些设置?在这一点上,我正在考虑对每个页面(无论是否通过SSL保护)进行精细控制,然后对整个网站进行精细控制。但是,如果人们不了解所有问题,那么给予这种级别的控制可能是一个错误,并且最终可能导致安全问题。也许这是第一个问题。什么是适当的控制级别?什么是智能默认值?第二个是页面对用户的行为。从SEO的角度来看,我认为上述过程或使用rel="canonical"
(如建议的jmb)可以工作,但是确定页面的行为以使其安全和无缝也是必不可少的。