javascript - 在 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。现在它正在处理两个不同的页面
/价钱
/价钱/
如何使用 301 重定向路由我的所有 /prcing/ -> /pricing?
这是我的 netlify 主机的设置
解决方案
不幸的是,您不能(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 选项。
推荐阅读
- go - 发送电子邮件时 Gmail API 忽略“FROM”标头
- java - 如何将 Cobol 响应中的签名显示字段解码为 Java 中的 BigDecimal
- reactjs - 自定义搜索栏标题 onchange 功能反应原生
- css - CSSTransition 和 react-tabs,React.Children.only 预期
- apache-beam - Beam Schemas 在 Python 中是否相关?
- python - 为什么亚马逊畅销书排名和 ASIN 数据没有出现?
- mysql - 选择计数 mysql
- html - React / Material UI 的屏幕滚动卡住了
- google-chrome - Chrome 错误边距自动
- javascript - 如何根据 Firebase 返回的数据更改元素的 CSS?