我对这些东西一无所知,所以请 ELI5 在你的回复中。
按照我的提供商 Dreamhost 的说明,我安装了 SSL 证书,然后将这些行添加到我的 .htaccess 文件中,以强制将 HTTP 请求重写为 HTTPS 请求。
# Redirect http requests to https
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
一切似乎都正常工作,即:每次我尝试使用 HTTP 访问该域下的页面时,它都会被重写为 HTTPS,并且地址栏中会显示“安全”图标。
我的问题是,我还需要启用 HSTS 吗?阅读它,它似乎与之前对 .htaccess 文件的更改完全相同。这是A2 Hosting (不是我的提供商)的摘录:
启用 HSTS
为站点启用 HSTS 后,Web 浏览器会自动将任何不安全请求 (http://) 更改为安全请求 (https://)。启用 HSTS 所需要做的就是在站点的 .htaccess 文件中添加一个标题。Web 浏览器识别此标头,然后处理其余部分,无需您进一步干预。
他们建议将其添加到 .htaccess 中:
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
另一个教程,这次特定于 Dreamhost,说要启用 HSTS 并在 .htaccess 文件中强制使用 HTTPS,但并没有真正说明原因。此页面提出了一些稍微不同的建议:
Header set Strict-Transport-Security "max-age=31415926; includeSubDomains; preload" env=HTTPS
我需要“https 重写”代码片段和 HSTS 吗?还是只有“https 重写”代码片段就足够了?我是否需要 HSTS 代码,如果需要,我的帖子中的两行 HSTS 代码有什么区别?