From d9d2e98f2b04f2f11f4a857327d6977bad82255d Mon Sep 17 00:00:00 2001 From: Barry Cape Date: Fri, 24 Apr 2026 08:44:07 -0400 Subject: [PATCH] fix: convert rewrites to direct redirects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Convert all internal rewrites to permanent redirects, bypassing intermediate redirect pages: - /quickstart → /docs/quickstart - /relayfile → /primitives#file - /relayauth → /primitives#auth - /relaycast → /primitives#message - /docs/reference-sdk → /docs/typescript-sdk - /docs/reference-sdk-py → /docs/python-sdk This ensures single-hop redirects and clean SEO. --- web/next.config.mjs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/web/next.config.mjs b/web/next.config.mjs index 6bb86852c..4cdce6dac 100644 --- a/web/next.config.mjs +++ b/web/next.config.mjs @@ -11,16 +11,17 @@ const nextConfig = { outputFileTracingIncludes: { '/*': ['content/docs/**/*', 'content/blog/**/*', '../packages/openclaw/skill/SKILL.md'], }, - async rewrites() { + async redirects() { return [ - { source: '/relayfile', destination: '/file' }, - { source: '/relayfile/:path*', destination: '/file/:path*' }, - { source: '/relayauth', destination: '/auth' }, - { source: '/relayauth/:path*', destination: '/auth/:path*' }, - { source: '/relaycast', destination: '/message' }, - { source: '/relaycast/:path*', destination: '/message/:path*' }, - { source: '/docs/reference-sdk', destination: '/docs/typescript-sdk' }, - { source: '/docs/reference-sdk-py', destination: '/docs/python-sdk' }, + { source: '/quickstart', destination: '/docs/quickstart', permanent: true }, + { source: '/relayfile', destination: '/primitives#file', permanent: true }, + { source: '/relayfile/:path*', destination: '/primitives#file', permanent: true }, + { source: '/relayauth', destination: '/primitives#auth', permanent: true }, + { source: '/relayauth/:path*', destination: '/primitives#auth', permanent: true }, + { source: '/relaycast', destination: '/primitives#message', permanent: true }, + { source: '/relaycast/:path*', destination: '/primitives#message', permanent: true }, + { source: '/docs/reference-sdk', destination: '/docs/typescript-sdk', permanent: true }, + { source: '/docs/reference-sdk-py', destination: '/docs/python-sdk', permanent: true }, ]; }, };