注释1:我刚接触过堆栈溢出,我不是真正的程序员,所以如果我做错了,请原谅我。(我大喊:“该死的吉姆,我是个医生,不是个程序员!”(现在)
注释2:我试着做家庭作业,但由于我不是程序员,我在想出问题的确切答案时遇到了一些困难。如果我错过了什么,请告诉我,希望这不是在浪费任何人的时间。
最终的目标是加快和安全我的网站。所有这些都应该经过https。
我注意到,如果我在测试器中直接输入"https://“”,我的(wordpress)网站速度测试要快得多(加载时间=1-2s对5-8s)。瀑布表明,需要很长时间才能将http重定向到https (这很有意义,因为我的.htaccess中目前根本没有重定向列表.我很惊讶它并没有完全失败)。
我希望通过在https://“中提供重定向,我的站点速度将更接近我在直接输入”.htaccess“时所看到的。
所有这些都导致我对.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 1应该转到https://example.com/page1
发布于 2016-10-20 15:53:34
您可以使用:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [NE,L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
<IfModule mod_headers.c>
Header set Strict-Transport-Security "max-age=10886400; includeSubDomains;"
</IfModule>只有一个重定向(http->https没有www)和头(在本例中)
https://stackoverflow.com/questions/40154500
复制相似问题