我目前正在开发一个 Next.js 项目,我使用静态导出来提高性能和 SEO。但是,我遇到了与 URL 更改相关的问题。我想实施 301 重定向。以便搜索引擎和用户被重定向到更新的页面。
任何帮助、代码片段或正确文档的指针将不胜感激。
我尝试过在 next.config.js 和 getServerSideProps 中进行重定向,但静态导出不支持这些方法。
我没有在Next.js中使用过静态页面,但是你尝试过使用中间件吗? https://nextjs.org/docs/app/building-your-application/routing/middleware
确保您正在查看正在使用的路由器的版本,无论是 AppRuuter 还是 PagesRouter。
这是部分来自文档的示例,只需确保它位于
src
目录中(如果有的话),否则根据您使用的内容将其放入 app
或 pages
目录中。
// middleware.js
import { NextResponse } from "next/server";
export function middleware(request) {
if (request.nextUrl.pathname.startsWith("/about")) {
return NextResponse.redirect(new URL("/about-2", request.url));
}
if (request.nextUrl.pathname.startsWith("/dashboard")) {
return NextResponse.redirect(new URL("/dashboard/user", request.url));
}
}
export const config = {
matcher: ["/about", "/dashboard"],
};
注意:如果您不包含
config
在要重定向的路径上运行,则条件重定向至少在 AppRouter 中不起作用(但重写可以)。