NextJS - 将所有重定向从 308 更改为 301

NextJS - Change all redirects from 308 to 301

提问人:Radek 提问时间:9/20/2023 最后编辑:Radek 更新时间:9/20/2023 访问量:136

问:

我有一个客户SEO的要求,将所有页面从308重定向到301。项目是在 NextJS 13 中开发的,带有页面文件夹。我已经处理了大多数情况(迁移后旧页面到新页面)middleware.ts使用

return NextResponse.redirect(new URL(address.destination), { status: 301 });

一般页面结构如下: xyz.com/offer/:brand/:model/

问题是当用户输入或重定向到 308 代码时。xyz.com//offerxyz.com///offerxyz.com/offer

我还尝试在下一个配置中使用重定向:

        return [
            {
                source: '/offer/',
                destination: '/offer',
                statusCode: 301,
            },
        ];
    }

但是不可能预测所有带有多个斜杠的情况 + 它不能按预期工作(不会发生 301 重定向)。

接下来有什么方法可以将所有内部重定向设置为 301?

重定向 next.js next.js13 http-status-code-301

评论


答:

0赞 Govind lovanshi 9/20/2023 #1

更新 next.config.js 以包含用于处理重定向的自定义服务器重写规则:

下一个.config:.js

module.exports = {
  async rewrites() {
    return [
      // Redirect all routes with multiple slashes to the clean version with 301 status code
      {
        source: '/:path*',
        destination: '/:path*',
        permanent: true,
      },
    ];
  },
};

评论

0赞 Radek 9/21/2023
重写不接受,重定向可以 - 但是在重定向中实现后,它会保持无限循环permanent