diff --git a/public/_redirects b/public/_redirects index 2bb5df16..f711bbc3 100644 --- a/public/_redirects +++ b/public/_redirects @@ -1 +1 @@ -/bug /bugs +/bug /bugs/ 301 diff --git a/src/app/[[...mdxPath]]/page.tsx b/src/app/[[...mdxPath]]/page.tsx index 0ed4a6ee..f3986408 100644 --- a/src/app/[[...mdxPath]]/page.tsx +++ b/src/app/[[...mdxPath]]/page.tsx @@ -1,3 +1,4 @@ +import type { Metadata } from 'next'; import type { FC } from 'react'; import { generateStaticParamsFor, importPage } from 'nextra/pages'; import { removeLinks } from 'nextra/remove-links'; @@ -6,10 +7,17 @@ import { useMDXComponents as getMDXComponents } from '../../mdx-components'; export const generateStaticParams = generateStaticParamsFor('mdxPath'); -export async function generateMetadata(props: PageProps) { +export async function generateMetadata(props: PageProps): Promise { const params = await props.params; const { metadata } = await importPage(params.mdxPath); - return metadata; + const path = (params.mdxPath ?? []).map(encodeURIComponent).join('/'); + return { + ...metadata, + alternates: { + ...metadata.alternates, + canonical: path ? `/${path}/` : '/', + }, + }; } type PageProps = Readonly<{