【问题标题】:Change Gatsby Permalinks to Non Pretty将 Gatsby 固定链接更改为非漂亮
【发布时间】:2020-03-26 22:54:04
【问题描述】:

我有一个旧的 php 网站,我想转移到 Gatsby。但是,它使用以下永久链接结构:

http://example.com/?qa=2/my-awesome-post

我使用的是 Gatsby Starter Blog 主题,但是,网址如下:

http://example.com/my-awesome-post

由于 SEO 原因,能够调整永久链接结构至关重要。但是,如果我尝试仅更改文件夹结构,则会出现“?”错误。文件或文件夹名称中不允许使用字符。有没有办法在 Gatsby 网站的 url 结构中包含特殊字符?请帮忙!

【问题讨论】:

  • 路径是否总是采用/?qa=2/my-awesome-post 的格式。在gatsby-node.js 中使用createPage 时,您可以轻松调整路径

标签: gatsby permalinks url-scheme


【解决方案1】:

如果您只是通过在pages 文件夹中创建新的.js 文件来从头创建这些页面,您可能会考虑覆盖gatsby-node.js 中的onCreatePage 方法。

例子:

exports.onCreatePage = ({ page, actions }) => {
  const { createPage, deletePage } = actions;

  // First delete the incoming page that was automatically created by Gatsby
  deletePage(page);

  // then create a new one with proper url
  return createPage({
    ...page,
    path: 'update-to-your-needs' 
  })
}

如果它们是动态创建的,例如从 markdown 文件中创建,您也可以覆盖它们在 gatsby-node.js 中的创建方式。

【讨论】:

  • 由于某种原因,当我添加问号时它不起作用(可能是因为它是受限符号)?它仅在我尝试不带问号时才有效:qa=2/my-awesome-post 网址已正确更新,但单击时未加载单个页面。
  • 是的。这是由于服务器和浏览器如何实现问号。我怀疑你能做些什么。我唯一想到的就是在 Nginx 或任何其他 Web 服务器中创建从旧 URL 到新 URL 的永久重定向。
  • 你知道如何使用 Gatsby 进行 url 重定向吗?
  • 我唯一想到的就是脏东西,我不能真正推荐它,但它应该可以工作。在你的主 index.js 文件中,你可以设置一个 JS 脚本来查找任何查询参数,然后进行相应的重定向。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-23
  • 2011-03-20
  • 2015-07-02
  • 1970-01-01
  • 2011-07-23
  • 2015-11-08
  • 2020-06-07
相关资源
最近更新 更多