首页 > 解决方案 > Netlify 重定向到 www 在 gatsby 网站上不起作用

问题描述

我正在尝试将所有没有 www 的 url 重定向到 www,我的 netlify.toml 文件中有以下规则

[[redirects]]
  from = "/"
  to = "/es"
  status = 302
  force = false
  conditions = {Country = ["es"], Language = ["es","EU-es"]}

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

第一条规则有效,但第二条规则是将所有没有 www 的请求重定向到 www 的一般规则不起作用。我正在使用带有打字稿的 gatsby v1。

标签: redirectgatsbynetlify

解决方案


如果您将站点的主自定义域设置为www.example.com并且您拥有主机名的有效 SSL 证书,Netlify 会自动执行此重定向。如果是辅助主机名(称为域别名: httpsexample.com ://www.netlify.com/docs/custom-domains/#domain-aliases) ,那么您可能需要/需要此重定向。www.example.com

通常人们将这些类型的重定向放在其他重定向之上,例如您的 302/语言重定向,以便它首先发生,但如果它不起作用,那可能不是它的(唯一)问题。

注意:这只会捕获对字面意义上的https://example.com(/ *) 的请求,而不是http://example.com在您没有网站强制使用 ssl 的情况下的请求(绝不应该是这种情况 - Netlify 会尝试对所有网站自动强制)。

如果您发现它不起作用并且您已满足先决条件: - 使用这些主机名配置的 netlify 站点 - 支持这些主机名的 netlify 站点上的 SSL 证书......那么我们可能没有处理它正确,所以它没有到位,或者系统中的其他东西有问题,您应该联系Netlify 的帮助台进行调查,因为已处理的重定向没有显示在任何地方,并试图了解通过反复试验处理的内容不是一个非常棒的过程:)


推荐阅读