什么是更好的设置?
我强烈倾向于解决方案1,但这仅仅是因为感觉正确。 是否有令人信服的论点? 搜索引擎和移动设备如何响应这两种设置?
我认为答案是“取决于”。 如果您不走这条路,那么也要遵循一些重要的安全实践。
如果您希望对站点上的每个页面进行加密,并且不想允许任何未加密的Web流量,那么1
是更好的设置; 或将实现您的目标的“唯一”设置(也请为所有https响应发送HSTS标头)。
我有几个站点会无条件地为通过http访问的所有 URL发送301标头,并且不会遇到问题。 在2017年,一旦用户通过热点进行了身份验证,所有受付费壁保护的WiFi热点就不会对HTTPS站点造成问题。
如果您不想或无法加密每个页面(原因可能包括有限的资源,缓存层,或者某些页面无法从加密中受益),那么只需要对某些资源(登录表格,结帐,付款表格,帐户管理等)。 请牢记安全性做法(任何带有表单的页面都应通过HTTPS提供服务,以防止篡改该表单,并且应将表单链接到https链接)。
如果要鼓励在不显式强制使用https的情况下使用HTTP,则可以允许对网站页面进行未加密的访问,但在内部,请将所有内容链接到https。 因此,如果有人进入http页面,则所有链接都指向https,因此无论他们单击什么,都将加密该会话以供将来访问(请注意,如果您在此处发送HSTS标头,浏览器将始终使用https)。
因此,就我个人而言,我会选择#1-强制使用https。
这里是一些有用的地方开始阅读: