如何在 express 中提交站点地图索引和子站点地图?

How to submit sitemap-index and child sitemaps in express?

到目前为止我使用了这个选项how to generate a sitemap in expressjs

但是现在我的网站有超过 50k 个 URL,我需要切换到站点地图索引 - https://developers.google.com/search/docs/advanced/sitemaps/large-sitemaps

所以在 express 中我不能只做:

router.get('/sitemap.xml', function(req, res) {
res.sendFile('YOUR_PATH/sitemap.xml');
});

因为现在我有多个文件:

/public/sitemaps:
sitemap-index.xml.gz
sitemap-0.xml.gz
sitemap-1.xml.gz
sitemap-2.xml.gz
...

而且我需要授予 google 访问所有这些权限的权限,那么我怎样才能让它在 express 上运行?

我找到了一个针对 404 使用快速路由和错误处理的解决方案。

app.get('/sitemap-:int.xml.gz', (req, res, next) => {
  try {
    res.set('Cache-control', 'public, max-age=0');
    res.sendFile(path.join(__dirname, 'public', 'sitemaps', `sitemap-${req.params.int}.xml.gz`));
  } catch (err) {
    next(err);
    // or res.status(404).render('error');
  }
});

这将涵盖所有站点地图,包括索引一。 将 google 提交给 www.yourwebsite.com/sitemap-index.xml.gz,他们将自己获取其余部分。