1

我正在为我的公司建立一个营销/消费者网站,从 WordPress(感谢上帝)迁移到 Next 和 Prismic 的组合。目前,我们的消费者网站有大约 600 个页面来为我们 35 多个经销商中的每一个提供多个产品和登录页面,但我想不再管理 600 个页面的内容,因为所有经销商都共享页面和内容;页面数量的唯一作用是允许我们增强 SEO 和 url 路径,以便每个产品页面都是经销商的子页面,即san-diego-ca/product-page sacramento-ca/product-page. 希望这是足够的信息来澄清我更广泛的问题。

我正在使用SSRand getServerSideProps,并且我希望能够拥有相同类型的 URL 结构,每个经销商都有自己的具有特定 url 路径的页面,但他们不需要拥有自己的页面内容。它们都共享相同的东西。我在 Prismic 中有一个名为/interior-doors. 使用 Next 有没有一种方法可以允许/interior-doors访问该页面,mysite.com/interior-doorsmysite.com/sacramento-ca/interior-doors无需拥有 2 个单独的页面?

在此先感谢,我可以根据需要添加尽可能多的代码或详细信息。

4

3 回答 3

1

您可以使用Next.js 重写这些别名。

您的内容策略可能比我从最初的描述中读出的要多,但一般来说,跨 600 页的重复内容听起来不像您在帮互联网一个忙,搜索引擎爬虫也可能在某个时候得到它。

于 2021-01-12T09:31:38.503 回答
0

看看 Next 的重定向:https ://nextjs.org/docs/api-reference/next.config.js/redirects

您可以指定(包括动态路由)哪些路由应“重定向”到何处,如下所示:

module.exports = {
  async redirects() {
    return [
      {
        source: '/:dealer/:product',
        destination: '/:product'
        permanent: false,
      }
    ]
  }
}

这会导致访问 /sacramento-ca/interior-doors 以重定向到 /interior-doors 等。这可能不适合您的确切用例,因此请查看文档以获取更多详细信息。

于 2021-12-06T05:41:38.043 回答
0

您实际上应该能够使用动态路由来完成此操作。对于 URL 结构的多个深度使用同一个文档的用例,可选的包罗万象的路由可能最有意义。然后,您可以将所需的任何内容作为查询传递,然后将其传递给内容,例如:

interior-doors/[[...slug]].js

将匹配:/interior-doors, /interior-doors/sacramento-ca, /post/sacramento-ca/interior-doors

然后,您可以访问查询并根据需要在内容中使用这些参数,这样您就可以实际提取城市名称并将其用于标题或副本中。

于 2021-12-08T01:19:44.577 回答