【问题标题】:Strapi/NextJs Dynamic Route SitemapStrapi/NextJs 动态路由站点地图
【发布时间】:2022-11-21 19:55:04
【问题描述】:

我正在使用 boazpoolman 的 strapi-sitemap-plugin 为我的 NextJs 应用程序开发站点地图。问题是我有一个嵌套的动态路由,如下所示:

/articles/[categories]/[article]

该插件允许自定义 url,如下所示:

我不确定如何将此信息传递给插件。在黑暗中相当重要,但我想避免涉及为 NextJs 应用程序生成站点地图的大量开发。

【问题讨论】:

    标签: next.js sitemap strapi


    【解决方案1】:

    我建议您使用“iamvishnusankar”的下一个站点地图生成器。 GitHub:“https://github.com/iamvishnusankar/next-sitemap” 安装包“npm i next-sitemap”或“yarn add next-sitemap”。

    在您的 ENV 文件中创建一个 SITE_URL 属性并将该值设置为您的公共域。还将这些值添加到部署设置中的环境变量中。

    SITE_URL=https://my-url.com/
    

    然后在您的根文件夹中创建一个“next-sitemap.config.js”文件并将此代码粘贴到其中。如果您有一个大型网站,请设置“sitemapSize: 7000”,否则您可以将其省略。还将更改频率设置为“每日”。

    /** @type {import('next-sitemap').IConfig} */
    module.exports = {  
      siteUrl: process.env.SITE_URL || 'https://my-url.com/',
      generateRobotsTxt: true,
      changefreq: 'daily',
      priority: 0.7,
      sitemapSize: 7000,
    
      transform: async (config, path) => {
        return {
          loc: path, 
          changefreq: config.changefreq,
          priority: config.priority,
          lastmod: config.autoLastmod ? new Date().toISOString() : undefined,
          alternateRefs: config.alternateRefs ?? [],
        }
      },
    
      additionalPaths: async (config) => [
        await config.transform(config, '/additional-page'),
      ],
      robotsTxtOptions: {
        policies: [
          {
            userAgent: '*',
            allow: '/',
          },
          {
            userAgent: 'test-bot',
            allow: ['/path', '/path-2'],
          },
          {
            userAgent: 'black-listed-bot',
            disallow: ['/sub-path-1', '/path-2'],
          },
        ],
        additionalSitemaps: [
          'https://doc.my-url.com/', //Add other releases or sub domains here
        ],
      },
    }
    

    然后在您的公共文件夹中创建一个“robot.txt”文件,并设置您认为合适的值。这是一个示例。

    # *
    User-agent: *
    Allow: /
    
    # test-bot
    User-agent: test-bot
    Allow: /path
    Allow: /path-2
    
    # black-listed-bot
    User-agent: black-listed-bot
    Disallow: /sub-path-1
    Disallow: /path-2
    
    # Host
    Host: https://my-url.com
    
    # Sitemaps
    Sitemap: https://my-url.com/sitemap.xml
    Sitemap: https://docs.my-url.com/sitemap.xml
    

    最后,运行“npm run build”或“yarn run build”。这将在您的公共文件夹中生成 sitemap-0.xml 和/或 sitemal.xml。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 2021-08-12
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-12
      相关资源
      最近更新 更多