下一次静态导出时进行 301 重定向

问题描述 投票:0回答:1

我目前正在开发一个 Next.js 项目,我使用静态导出来提高性能和 SEO。但是,我遇到了与 URL 更改相关的问题。我想实施 301 重定向。以便搜索引擎和用户被重定向到更新的页面。

任何帮助、代码片段或正确文档的指针将不胜感激。

我尝试过在 next.config.js 和 getServerSideProps 中进行重定向,但静态导出不支持这些方法。

javascript reactjs next.js next
1个回答
0
投票

我没有在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 中不起作用(但重写可以)。

© www.soinside.com 2019 - 2024. All rights reserved.