提问人:Radek 提问时间:9/20/2023 最后编辑:Radek 更新时间:9/20/2023 访问量:136
NextJS - 将所有重定向从 308 更改为 301
NextJS - Change all redirects from 308 to 301
问:
我有一个客户SEO的要求,将所有页面从308重定向到301。项目是在 NextJS 13 中开发的,带有页面文件夹。我已经处理了大多数情况(迁移后旧页面到新页面)middleware.ts使用
return NextResponse.redirect(new URL(address.destination), { status: 301 });
一般页面结构如下: xyz.com/offer/:brand/:model/
问题是当用户输入或重定向到 308 代码时。xyz.com//offer
xyz.com///offer
xyz.com/offer
我还尝试在下一个配置中使用重定向:
return [
{
source: '/offer/',
destination: '/offer',
statusCode: 301,
},
];
}
但是不可能预测所有带有多个斜杠的情况 + 它不能按预期工作(不会发生 301 重定向)。
接下来有什么方法可以将所有内部重定向设置为 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
评论