评论1:我是stackoverflow的新手,我不是真正的程序员,所以如果我做错了请原谅我。(我现在大喊“该死的吉姆,我是医生而不是程序员!”)
评论 2:我试图做我的功课,但就我不是程序员而言,我在弄清楚我的问题的确切答案时遇到了一些麻烦。如果我错过了什么,请告诉我,希望这不会浪费任何人的时间。
最终目标是加快和保护我的网站。它应该全部通过https。
我注意到,如果我直接在测试仪中输入“https://”,我的(wordpress)网站速度测试要快得多(加载时间=1-2s vs 5-8s)。瀑布表明需要很长时间才能将 http 重定向到 https(这是有道理的,因为目前我的 .htaccess 中根本没有列出重定向......我很惊讶它并没有完全失败)。
我希望通过在 .htaccess 中提供重定向,我的网站速度将更接近直接输入“https://”时看到的速度。
这一切都促使我调查 .htaccess 中的 HSTS 和 301 重定向。似乎有很多不同的方式来做这些重定向,我不确定有什么区别。
例如,这是不是更好:
RewriteEngine On
RewriteCond !{HTTPS} off
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
还是这个(由我的托管服务提供商推荐)?
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
然后我在 varvy 上找到了 .htaccess 的代码https://varvy.com/pagespeed/hsts.html
。
我想添加到 .htaccess
<IfModule mod_headers.c>
Header set Strict-Transport-Security "max-age=10886400; includeSubDomains;"
</IfModule>
(现在不是预加载)但我不确定是否应该将其插入重定向上方或下方。
我应该使用它env=https
来防止任何通过 http 发送 HSTS 的尝试吗?
更复杂的是,这篇文章似乎表明我应该有多个重定向,以使整个事情在所有情况下都能正常工作。这篇文章对我来说很有意义,他提出的重定向方案也是如此:
http://example.com → https://example.com*
http://www.example.com → https://www.example.com* → https://example.com*
https://www .example.com → https://example.com*
但是我不确定如何在实际的 .htaccess 中实现类似的东西,而且我对盲目地尝试东西有点紧张。
最后,我的各种 wordpress 插件在 .htaccess 文件中添加了一堆缓存/安全内容。重定向是高于还是低于所有这些?
我的规范(和 ssl 证书)位于https://example.com
,所以我希望所有重定向都结束(但保留请求的剩余部分),所以 example.com/page1 应该转到https://example.com/page1