首页 > 解决方案 > 为什么我的 Netlify 托管的 Gatsby 站点 301 重定向到没有域的路径?

问题描述

我做了一个快速检查,以确保我的网站是 301 重定向的:

https://inlunar.com/news/iceye-shows-off-new-sharp-images-from-satellite

到 www。版本:

https://www.inlunar.com/news/iceye-shows-off-new-sharp-images-from-satellite

但是,当我检查时,我发现从 www 发生了额外的 301 重定向。网址:

/news/iceye-shows-off-new-sharp-images-from-satellite

没有在任何地方找到的域名。这是第二个重定向的完整日志:

>>> https://www.inlunar.com/news/iceye-shows-off-new-sharp-images-from-satellite

> --------------------------------------------
> 301 Moved Permanently
> --------------------------------------------

Status: 301 Moved Permanently
Code:   301
Cache-Control:  public, max-age=0, must-revalidate
Content-Type:   text/html; charset=UTF-8
Date:   Wed, 17 Jun 2020 01:09:17 GMT
Etag:   "8af6153ff17d129285674adb734ca0e3-ssl"
Strict-Transport-Security:  max-age=31536000
Age:    0
Server: Netlify
X-NF-Request-ID:    69351fad-bde6-4674-a9b8-fe017a45ee0c-2118676
Location:   /news/iceye-shows-off-new-sharp-images-from-satellite/

为什么会发生第二个 301 重定向?

标签: reactjsredirectgatsbynetlify

解决方案


Netlify 似乎正在使用尾部斜杠重定向到当前请求的位置,这与他们的文档一致,以提高缓存命中率。

至于域的省略,它只是一个相对 URL

相对 URL 是不包含方案或主机的 URL。为了便于理解,它们必须与原始请求的 URL 结合使用。

http://www.example.com/blog的客户端请求:

GET /blog HTTP/1.1
Host: www.example.com

服务器响应:

HTTP/1.1 302 Found
Location: /articles/

该位置的 URL 由客户端扩展为 http://www.example.com/articles/


推荐阅读