我目前正在做一个Next.js项目,我使用静态导出来提高性能和SEO。但是,我遇到了一个与URL更改有关的问题。我想实现**301重定向。以便搜索引擎和用户被重定向到更新的页面。任何帮助,代码片段,或指向正确文档的指针将不胜感激。我已经尝试了next.config.js和getServerSideProps中的重定向,但静态导出中不支持这些方法。
sczxawaw1#
我没有在Next.js中使用静态页面,但你有没有尝试使用中间件?https://nextjs.org/docs/app/building-your-application/routing/middleware确保您正在查看您正在使用的路由器的版本,无论是AppRuuter还是PagesRouter。这里有一个部分来自文档的例子,如果你有,请确保它在src目录中,否则,根据你使用的是什么,把它放在app或pages目录中。
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来运行在你想要重定向的路径上,条件重定向不起作用(但rewrite可以)至少在AppRouter中。
config
1条答案
按热度按时间sczxawaw1#
我没有在Next.js中使用静态页面,但你有没有尝试使用中间件?https://nextjs.org/docs/app/building-your-application/routing/middleware
确保您正在查看您正在使用的路由器的版本,无论是AppRuuter还是PagesRouter。
这里有一个部分来自文档的例子,如果你有,请确保它在
src
目录中,否则,根据你使用的是什么,把它放在app
或pages
目录中。字符串
注意:如果你不包括
config
来运行在你想要重定向的路径上,条件重定向不起作用(但rewrite可以)至少在AppRouter中。