Netlify可以在不强制SSL的情况下将流量从http重定向到https

时间:2018-04-07 22:47:02

标签: netlify

Netlify社区经常提出另一个问题。 “Netlify可以将流量从http重定向到https而不强制使用SSL(TLS)吗?”

  

获得证书后,您可以选中一个框以强制使用TLS。这将设置从http到https的重定向,并为所有请求添加严格传输安全标头。

在完成所有设置并且他们知道不会更改设置之前,用户不想强制使用SSL。

2 个答案:

答案 0 :(得分:7)

2018年11月更新

接受的答案不再正确

当前,自2018年11月(自2018年7月起),Netlify上的所有新站点均为HTTPS ,默认情况下强制重定向已打开,而您无法将其关闭。< / p>

请参阅博客文章:

以及GitHub上的此问题:

即使对于旧站点,也无法使用关闭HTTPS或关闭重定向到HTTPS的选项:

enter image description here

答案 1 :(得分:5)

Netlify允许您强制使用TLS。建议不要强迫TLS&#39;直到您确定所有网址都使用https

  

在您确定所有网址都在前面使用“https://”之前,请不要选中“强制TLS”选项!

为什么?

使用Netlify强制TLS后,他们将在页面响应标头中设置STS(严格传输安全)标头。我不会通过解释来you can read about it here

最重要的是:

  

支持的浏览器收到此标头后,浏览器将阻止通过HTTP将任何通信发送到指定的域,而是通过HTTPS发送所有通信

请注意,Netlify的设置(使用强制TLS复选框)是让访问浏览器在 1年过去的访问日期强制执行此操作!因此,如果您在https上有任何失败,您的网站将会遇到一些问题,直到您能够解决它们为止。

等待!

您仍然希望您的网站在添加证书后始终提供https页面,但在测试或解决问题时不会强制使用。

解决方案:

使用已部署网站根目录的_redirects文件(位于&#34;发布目录,index.html旁边)将流量重定向到https。

以下是文件

的示例

_redirects

# redirect netlify sitename to your sitename for SEO purposes,
# to avoid duplicate content.  Do this for http and https
https://example.netlify.com/* https://www.example.com/:splat 301!
http://example.netlify.com/* http://www.example.com/:splat 301!

# also redirect http to https for your custom domain.
# Note that netlify automatically redirects to your custom domain from the bare domain (or vice versa), so you only need one rule here.
http://www.example.com/* https://www.example.com/:splat 301!

使用Structured Redirects

进行相同的重定向

netlify.toml

[[redirects]]
  from = "https://example.netlify.com/*"
  to = "https://www.example.com/:splat"
  status = 301
  force = true

[[redirects]]
  from = "http://example.netlify.com/*"
  to = "http://www.example.com/:splat"
  status = 301
  force = true

[[redirects]]
  from = "http://www.example.com/*"
  to = "https://www.example.com/:splat"
  status = 301
  force = true

<强> 注:

  • Netlify已将裸域重定向到www子域(可选)
  • 建议您使用www作为自定义域名,以便通过 ANY DNS设置充分利用Netlify CDN。
  • 将netlify子域网站重定向到自定义域(可选)
  • 将所有路径的http重定向到https