我和很多人一样,目前正在使用这种方法将所有流量从端口80重定向到https:
{
"subject":"New Event 3",
"isOrganizer":true,
"organizer":{
"emailAddress":{
"name":"Owner",
"address":"owner@..."
}
}
},
{
"subject":"New event 2",
"isOrganizer":true,
"organizer":{
"emailAddress":{
"name":"Owner",
"address":"owner@..."
}
}
},
{
"subject":"New event",
"isOrganizer":true,
"organizer":{
"emailAddress":{
"name":"Owner",
"address":"owner@..."
}
}
}
虽然我也成功使用了以下方法:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
并且已经看到这种方法有效,但目前在任何地方都没有使用它:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
有3个不错的选项(可能还有几个),Chrome以及其他版本showing security warnings适用于非https版本,我想知道前进的最佳方式是什么。这些方法中的一种明显优于另一种方法,还是特定于案例?最佳实践'出现?将https作为新标准,是否有理由使用RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
代替R
,因为https重定向几乎总是永久性的?
我问,因为像许多自由职业者一样,我远不是服务器配置专家,但它仍然在最近成功推出最小网站方面发挥了重要作用。
答案 0 :(得分:1)
如果您可以指定域名,最佳解决方案是将https和www:
结合使用RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [OR,NC]
RewriteCond %{HTTPS} off
RewriteRule ^ https://www.exemple.com%{REQUEST_URI} [NE,R=301,L]
但在任何情况下,您都不应该首先重定向到没有www的https,或者使用或不使用www重定向到http。
你需要重定向301(使用[R = 301])而不是302(默认使用[R])。