首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hsts,301 s http www to https:// canonical

hsts,301 s http www to https:// canonical
EN

Stack Overflow用户
提问于 2016-10-20 12:29:35
回答 1查看 459关注 0票数 2

注释1:我刚接触过堆栈溢出,我不是真正的程序员,所以如果我做错了,请原谅我。(我大喊:“该死的吉姆,我是个医生,不是个程序员!”(现在)

注释2:我试着做家庭作业,但由于我不是程序员,我在想出问题的确切答案时遇到了一些困难。如果我错过了什么,请告诉我,希望这不是在浪费任何人的时间。

最终的目标是加快和安全我的网站。所有这些都应该经过https。

我注意到,如果我在测试器中直接输入"https://“”,我的(wordpress)网站速度测试要快得多(加载时间=1-2s对5-8s)。瀑布表明,需要很长时间才能将http重定向到https (这很有意义,因为我的.htaccess中目前根本没有重定向列表.我很惊讶它并没有完全失败)。

我希望通过在https://“中提供重定向,我的站点速度将更接近我在直接输入”.htaccess“时所看到的。

所有这些都导致我对.htaccess的HSTS和301重定向进行了调查。似乎有很多不同的方式来做这些重定向,我不知道有什么区别。

例如,这样做是否更好:

代码语言:javascript
复制
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>

还是这个(我的主机提供商推荐的)?

代码语言:javascript
复制
RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

然后我在varvy上找到了.htaccess https://varvy.com/pagespeed/hsts.html的代码。

我想添加到.htaccess中

代码语言:javascript
复制
<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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-20 15:53:34

您可以使用:

代码语言:javascript
复制
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)和头(在本例中)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40154500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档