reactjs 301下次静态导出时重定向

thigvfpy  于 2023-08-04  发布在  React
关注(0)|答案(1)|浏览(78)

我目前正在做一个Next.js项目,我使用静态导出来提高性能和SEO。但是,我遇到了一个与URL更改有关的问题。我想实现**301重定向。以便搜索引擎和用户被重定向到更新的页面。
任何帮助,代码片段,或指向正确文档的指针将不胜感激。
我已经尝试了next.config.js和getServerSideProps中的重定向,但静态导出中不支持这些方法。

sczxawaw

sczxawaw1#

我没有在Next.js中使用静态页面,但你有没有尝试使用中间件?https://nextjs.org/docs/app/building-your-application/routing/middleware
确保您正在查看您正在使用的路由器的版本,无论是AppRuuter还是PagesRouter。
这里有一个部分来自文档的例子,如果你有,请确保它在src目录中,否则,根据你使用的是什么,把它放在apppages目录中。

// 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中。

相关问题