chore: gracefully handle 404s from pages router's dynamic pages + tests (#18618)

* restore pages/_error

* set custom header in pages/_error

* handle it in middleware

* add test

* remove logs

* better test description
This commit is contained in:
Benny Joo
2025-01-13 15:46:56 +05:30
committed by GitHub
parent b3ed6e39e3
commit 0befdde5d7
3 changed files with 135 additions and 0 deletions
+5
View File
@@ -22,6 +22,11 @@ const safeGet = async <T = any>(key: string): Promise<T | undefined> => {
const middleware = async (req: NextRequest): Promise<NextResponse<unknown>> => {
const url = req.nextUrl;
const requestHeaders = new Headers(req.headers);
const response = NextResponse.next();
if (response.headers.get("x-pages-router-error") === "true") {
return NextResponse.rewrite(new URL("/_not-found", req.url));
}
requestHeaders.set("x-url", req.url);