首页 > 解决方案 > 在 netlify 上托管的 gatsby 网站中启用 301 重定向规则

问题描述

我对 301 重定向规则有一个问题。我用 gatsby 建立了一个网站并将其托管在 netlify 上。

我习惯于gatsby-plugin-remove-trailing-slashes删除尾部斜杠。但是,它不会以 301 状态重定向,而是以 200 状态重定向

例如,如果我打开 xyz.com/pricing/ → 它返回 200,而不是 301。(我只想要一个 URL,即它应该自动重定向到 xyz.com/pricing [ 不带斜杠])

在这里,我想确保它在网络选项卡中返回 301。301 重定向表示网页从一个位置永久移动到另一个位置。这样,谷歌将从排名中删除 /pricing/,我们将只剩下一页 /pricing。现在它正在处理两个不同的页面

  1. /价钱

  2. /价钱/

如何使用 301 重定向路由我的所有 /prcing/ -> /pricing?

这是我的 netlify 主机的设置

在此处输入图像描述

标签: javascriptredirectgatsbynetlify

解决方案


不幸的是,您不能(2021 年 8 月 3 日)。根据Netlify 的文档

这对您的重定向规则意味着什么,Netlify 将匹配规则的路径,无论它们是否包含尾部斜杠

您不能使用重定向规则来添加或删除尾部斜杠。

换句话说:为了优化和最大化缓存命中率,Netlify 以相同的方式解释带有和不带斜杠的 URL,因此重定向规则不会产生任何影响。

# These rules are effectively the same:
# either rule alone would trigger on both paths
/blog/title-with-a-typo    /blog/typo-free-title
/blog/title-with-a-typo/   /blog/typo-free-title

# This rule will cause an infinite redirect
# because the paths are effectively the same
/blog/remove-my-slashes/   /blog/remove-my-slashes  301!

但是,根据Netlify URLs 中的 Remove trailing slash(Gatsby 的文章),301有时会默认执行重定向。尝试使用资产优化和漂亮的 URL 选项。


推荐阅读