diff --git a/fern/docs.yml b/fern/docs.yml
index c51a10a6a..853f20502 100644
--- a/fern/docs.yml
+++ b/fern/docs.yml
@@ -172,10 +172,8 @@ redirects:
# Main learn page redirect
- source: /learn
destination: /learn/home
- permanent: true
- source: /learn/welcome
destination: /learn/home
- permanent: true
# ============================================================================
@@ -185,144 +183,102 @@ redirects:
# SDK Features/Capabilities redirects
- source: /learn/sdks/features
destination: /learn/sdks/overview/capabilities
- permanent: true
- source: /learn/sdks/features/:slug*
destination: /learn/sdks/overview/capabilities
- permanent: true
# SDK Deep Dives - specific overrides for newer destinations
- source: /learn/sdks/capabilities/method-names
destination: /learn/sdks/deep-dives/customize-method-names
- permanent: true
- source: /learn/sdks/guides/preview-your-sdk-locally
destination: /learn/sdks/deep-dives/local-previews
- permanent: true
- source: /learn/sdks/capabilities/auto-pagination
destination: /learn/sdks/deep-dives/auto-pagination
- permanent: true
- source: /learn/sdks/capabilities/idempotency-headers
destination: /learn/sdks/deep-dives/idempotency
- permanent: true
- source: /learn/sdks/capabilities/integration-tests
destination: /learn/sdks/deep-dives/testing
- permanent: true
# SDK Package Managers redirects
- source: /learn/sdks/guides/publish-to-package-managers/npm-type-script
destination: /learn/sdks/generators/typescript/publishing
- permanent: true
- source: /learn/sdks/guides/publish-to-package-managers/pypi
destination: /learn/sdks/generators/python/publishing
- permanent: true
- source: /learn/sdks/guides/publish-to-package-managers/nuget
destination: /learn/sdks/generators/net/publishing
- permanent: true
- source: /learn/sdks/guides/publish-to-package-managers/pkgsite
destination: /learn/sdks/generators/go/publishing
- permanent: true
- source: /learn/sdks/guides/publish-to-package-managers/maven-central
destination: /learn/sdks/generators/java/publishing
- permanent: true
- source: /learn/sdks/guides/publish-to-package-managers/rubygems
destination: /learn/sdks/generators/ruby/publishing
- permanent: true
- source: /learn/sdks/guides/publish-to-package-managers/packagist
destination: /learn/sdks/generators/php/publishing
- permanent: true
- source: /learn/sdks/package-managers/:slug*
destination: /learn/sdks/generators/typescript/publishing
- permanent: true
# SDK Introduction redirects
- source: /learn/sdks/introduction/configuration
destination: /learn/sdks/overview/introduction
- permanent: true
- source: /learn/sdks/introduction/language-support
destination: /learn/sdks/overview/introduction
- permanent: true
- source: /learn/sdks/introduction/overview
destination: /learn/sdks/overview/introduction
- permanent: true
- source: /learn/sdks/overview/set-up-the-fern-folder
destination: /learn/sdks/overview/quickstart
- permanent: true
- source: /learn/sdks/fern-folder
destination: /learn/sdks/overview/quickstart
- permanent: true
- source: /learn/sdks/overview/github
destination: /learn/sdks/overview/project-structure
- permanent: true
- source: /learn/sdks/introduction/customer-showcase
destination: /learn/sdks/customer-showcase
- permanent: true
- source: /learn/sdks/introduction/changelog/ts/:slug*
destination: /learn/sdks/generators/typescript/changelog/:slug*
- permanent: true
- source: /learn/sdks/introduction/changelog/python/:slug*
destination: /learn/sdks/generators/python/changelog/:slug*
- permanent: true
- source: /learn/sdks/introduction/changelog/csharp/:slug*
destination: /learn/sdks/generators/csharp/changelog/:slug*
- permanent: true
- source: /learn/sdks/introduction/changelog/go/:slug*
destination: /learn/sdks/generators/go/changelog/:slug*
- permanent: true
- source: /learn/sdks/introduction/changelog/java/:slug*
destination: /learn/sdks/generators/java/changelog/:slug*
- permanent: true
- source: /learn/sdks/introduction/changelog/ruby/:slug*
destination: /learn/sdks/generators/ruby/changelog/:slug*
- permanent: true
- source: /learn/sdks/introduction/changelog/php/:slug*
destination: /learn/sdks/generators/php/changelog/:slug*
- permanent: true
# SDK Capabilities - remaining general redirects (after specific overrides above)
- source: /learn/sdks/capabilities/idiomatic-method-names
destination: /learn/sdks/deep-dives/customize-method-names
- permanent: true
- source: /learn/sdks/capabilities/o-auth-token-refresh
destination: /learn/sdks/capabilities/oauth
- permanent: true
- source: /learn/sdks/capabilities/retries-with-backoff
destination: /learn/sdks/capabilities/retries
- permanent: true
- source: /learn/sdks/capabilities/web-sockets
destination: /learn/sdks/capabilities/websockets
- permanent: true
- source: /learn/sdks/capabilities/augment-with-custom-code
destination: /learn/sdks/overview/custom-code
- permanent: true
- source: /learn/sdks/capabilities/merging-multiple-apis
destination: /learn/sdks/capabilities/merging-apis
- permanent: true
# General SDK capabilities pattern (will catch any not specifically overridden above)
- source: /learn/sdks/capabilities/:slug*
destination: /learn/sdks/overview/introduction
- permanent: true
# SDK Guides - specific cases first, then general pattern
- source: /learn/sdks/guides/generate-your-first-sdk
destination: /learn/sdks/overview/quickstart
- permanent: true
- source: /learn/sdks/guides/publish-a-public-facing-sdk
destination: /learn/sdks/overview/introduction
- permanent: true
- source: /learn/sdks/guides/publish-to-package-managers/:slug*
destination: /learn/sdks/generators/:slug*
- permanent: true
- source: /learn/sdks/reference/generators-yml-reference
destination: /learn/sdks/reference/generators-yml
- permanent: true
# General SDK guides pattern
- source: /learn/sdks/getting-started/:slug*
destination: /learn/sdks/overview/introduction
- permanent: true
- source: /learn/sdks/guides/:slug*
destination: /learn/sdks/overview/introduction
- permanent: true
# ============================================================================
# DOCS REDIRECTS
@@ -331,125 +287,87 @@ redirects:
# Building Your Docs redirects (older naming)
- source: /learn/docs/building-your-docs/:slug*
destination: /learn/docs/building-and-customizing-your-docs/:slug*
- permanent: true
# Getting Started page redirects - specific cases first
- source: /learn/docs/getting-started/customer-showcase
destination: https://buildwithfern.com/customers
- permanent: true
- source: /learn/docs/getting-started/global-configuration
destination: /learn/docs/configuration/what-is-docs-yml
- permanent: true
- source: /learn/docs/getting-started/development
destination: /learn/docs/preview-publish/previewing-changes-locally
- permanent: true
- source: /learn/docs/getting-started/publish-your-docs
destination: /learn/docs/preview-publish/publishing-your-docs
- permanent: true
# Building and Customizing Your Docs redirects - specific cases first
- source: /learn/docs/building-and-customizing-your-docs/navigation
destination: /learn/docs/configuration/navigation
- permanent: true
- source: /learn/docs/navigation/overview
destination: /learn/docs/configuration/navigation
- permanent: true
- source: /learn/docs/building-and-customizing-your-docs/versioning
destination: /learn/docs/configuration/versions
- permanent: true
- source: /learn/docs/navigation/versions
destination: /learn/docs/configuration/versions
- permanent: true
- source: /learn/docs/building-and-customizing-your-docs/announcements
destination: /learn/docs/customization/announcement-banner
- permanent: true
- source: /learn/docs/navigation/announcement-banner
destination: /learn/docs/customization/announcement-banner
- permanent: true
- source: /learn/docs/building-and-customizing-your-docs/links-and-redirects
destination: /learn/docs/seo/redirects
- permanent: true
- source: /learn/docs/building-and-customizing-your-docs/customizing-slugs
destination: /learn/docs/seo/configuring-slugs
- permanent: true
- source: /learn/docs/building-and-customizing-your-docs/hiding-content
destination: /learn/docs/customization/hiding-content
- permanent: true
- source: /learn/docs/navigation/hiding-content
destination: /learn/docs/customization/hiding-content
- permanent: true
- source: /learn/docs/building-and-customizing-your-docs/pull-request-preview
destination: /learn/docs/preview-publish/previewing-changes-in-a-pr
- permanent: true
- source: /learn/docs/building-and-customizing-your-docs/product-switching
destination: /learn/docs/configuration/products
- permanent: true
- source: /learn/docs/navigation/products
destination: /learn/docs/configuration/products
- permanent: true
- source: /learn/docs/building-and-customizing-your-docs/custom-css-global-js
destination: /learn/docs/customization/custom-css-js
- permanent: true
- source: /learn/docs/building-and-customizing-your-docs/custom-domain
destination: /learn/docs/preview-publish/setting-up-your-domain
- permanent: true
- source: /learn/docs/building-and-customizing-your-docs/rbac
destination: /learn/docs/authentication/rbac
- permanent: true
- source: /learn/docs/building-and-customizing-your-docs/search
destination: /learn/docs/customization/search
- permanent: true
- source: /learn/docs/content/write-markdown
destination: /learn/docs/writing-content/markdown
- permanent: true
- source: /learn/docs/content/components/:slug*
destination: /learn/docs/writing-content/components/:slug*
- permanent: true
- source: /learn/docs/content/custom-react-components
destination: /learn/docs/writing-content/custom-react-components
- permanent: true
- source: /learn/docs/content/frontmatter
destination: /learn/docs/customization/frontmatter
- permanent: true
- source: /learn/docs/content/reusable-snippets
destination: /learn/docs/writing-content/reusable-snippets
- permanent: true
- source: /learn/docs/writing-content/reusable-markdown
destination: /learn/docs/writing-content/reusable-snippets
- permanent: true
- source: /learn/docs/content/changelog
destination: /learn/docs/customization/changelogs
- permanent: true
- source: /learn/docs/navigation/changelogs
destination: /learn/docs/customization/changelogs
- permanent: true
- source: /learn/docs/writing-content/visual-editor
destination: /learn/docs/writing-content/fern-editor
- permanent: true
- source: /learn/docs/writing-content/code-blocks
destination: /learn/docs/writing-content/components/code-blocks
- permanent: true
- source: /learn/docs/getting-started/changelog/:slug*
destination: /learn/docs/changelog/:slug*
- permanent: true
- source: /learn/docs/api-references/api-explorer
destination: /learn/docs/api-references/api-explorer/overview
- permanent: true
- source: /learn/docs/api-references/api-playground/:slug*
destination: /learn/docs/api-references/api-explorer/:slug*
- permanent: true
- source: /learn/docs/api-references/api-playground
destination: /learn/docs/api-references/api-explorer/overview
- permanent: true
- source: /learn/user-feedback
destination: /learn/docs/user-feedback
- permanent: true
- source: /learn/docs/customization/what-is-docs-yml
destination: /learn/docs/configuration/what-is-docs-yml
- permanent: true
# ============================================================================
# CLI & API REFERENCE REDIRECTS
@@ -458,41 +376,29 @@ redirects:
# CLI & API Reference specific redirects first
- source: /learn/cli-api/cli-reference/get-started-with-fern-cli
destination: /learn/cli-api-reference/cli-reference/overview
- permanent: true
- source: /learn/cli-api/cli-reference/cli-overview
destination: /learn/cli-api-reference/cli-reference/overview
- permanent: true
- source: /learn/cli-reference/cli-overview
destination: /learn/cli-api-reference/cli-reference/overview
- permanent: true
- source: /learn/cli-reference/overview
destination: /learn/cli-api-reference/cli-reference/overview
- permanent: true
- source: /learn/cli-api/cli-reference/global-options
destination: /learn/cli-api-reference/cli-reference/options
- permanent: true
- source: /learn/cli-reference/get-started
destination: /learn/cli-api-reference/cli-reference/overview
- permanent: true
- source: /learn/cli-reference/commands
destination: /learn/cli-api-reference/cli-reference/commands
- permanent: true
- source: /learn/cli-reference/options
destination: /learn/cli-api-reference/cli-reference/options
- permanent: true
# CLI patterns
- source: /learn/cli-api/cli-reference/:slug*
destination: /learn/cli-reference/:slug*
- permanent: true
- source: /learn/cli-api/cli/:slug*
destination: /learn/cli-reference/:slug*
- permanent: true
- source: /learn/cli-api/:slug*
destination: /learn/cli-reference/:slug*
- permanent: true
- source: /learn/cli-reference/changelog/:slug*
destination: /learn/cli-api-reference/cli-reference/changelog/:slug*
- permanent: true
# ============================================================================
# API DEFINITION REDIRECTS
@@ -501,53 +407,38 @@ redirects:
# # API Definition OpenAPI specific redirects first
- source: /learn/api-definition/openapi/endpoints/:slug*
destination: /learn/api-definitions/openapi/endpoints/:slug*
- permanent: true
- source: /learn/api-definition/openapi/extensions/:slug*
destination: /learn/api-definitions/openapi/extensions/:slug*
- permanent: true
- source: /learn/api-definition/openapi/frameworks/:slug*
destination: /learn/api-definitions/openapi/frameworks/:slug*
- permanent: true
- source: /learn/api-definition/openapi/:slug*
destination: /learn/api-definitions/openapi/:slug*
- permanent: true
- source: /learn/openapi-definition/extensions/webhooks
destination: /learn/api-definitions/openapi/endpoints/webhooks
- permanent: true
- source: /learn/api-definitions/openapi/overlay-customizations
destination: /learn/api-definitions/overview/overrides
- permanent: true
- source: /learn/api-definitions/asyncapi/overlay-customizations
destination: /learn/api-definitions/overview/overrides
- permanent: true
- source: /learn/api-definitions/openrpc/overlay-customizations
destination: /learn/api-definitions/overview/overrides
- permanent: true
- source: /learn/api-definitions/grpc/overlay-customizations
destination: /learn/api-definitions/overview/overrides
- permanent: true
- source: /learn/api-definitions/openapi/automatic-updates
destination: /learn/api-definitions/openapi/sync-your-open-api-specification
- permanent: true
# API Definition Fern specific redirects first
- source: /learn/api-definition/fern/endpoints/:slug*
destination: /learn/api-definitions/ferndef/endpoints/:slug*
- permanent: true
- source: /learn/api-definition/fern/api-yml/:slug*
destination: /learn/api-definitions/ferndef/api-yml/:slug*
- permanent: true
- source: /learn/api-definition/fern/:slug*
destination: /learn/api-definitions/ferndef/:slug*
- permanent: true
# # API Definition Introduction redirects
- source: /learn/api-definition/introduction/what-is-an-api-definition
destination: /learn/api-definitions/overview/what-is-an-api-definition
- permanent: true
- source: /learn/api-definition/introduction/what-is-the-fern-folder
destination: /learn/api-definitions/overview/project-structure
- permanent: true
# ============================================================================
# ASK FERN (AI SEARCH) REDIRECTS
@@ -556,42 +447,30 @@ redirects:
# Ask Fern specific redirects first
- source: /learn/ai-search/customer-showcase
destination: https://buildwithfern.com/customers
- permanent: true
- source: /learn/ai-search/overview
destination: /learn/ask-fern/getting-started/what-is-ask-fern
- permanent: true
- source: /learn/ai-search/custom-prompting
destination: /learn/ask-fern/configuration/custom-prompts
- permanent: true
- source: /learn/ai-search/citations
destination: /learn/ask-fern/features/citations
- permanent: true
- source: /learn/ask-fern/overview
destination: /learn/ask-fern/getting-started/what-is-ask-fern
- permanent: true
- source: /learn/ask-fern/customer-showcase
destination: https://buildwithfern.com/customers
- permanent: true
- source: /learn/ask-fern/citations
destination: /learn/ask-fern/features/citations
- permanent: true
- source: /learn/ask-fern/custom-prompting
destination: /learn/ask-fern/configuration/custom-prompts
- permanent: true
# General Ask Fern patterns
- source: /learn/ai-search/getting-started/:slug*
destination: /learn/ask-fern/:slug*
- permanent: true
- source: /learn/ai-search/features/:slug*
destination: /learn/ask-fern/:slug*
- permanent: true
- source: /learn/ai-search/:slug*
destination: /learn/ask-fern/:slug*
- permanent: true
- source: /learn/ask-fern/api-reference/queries/:slug*
destination: /learn/ask-fern/api-reference/overview
- permanent: true
# ============================================================================
# API REFERENCE REDIRECTS (Fern Public API)
@@ -600,61 +479,44 @@ redirects:
# Fern Public API Reference redirects
- source: /learn/api-reference/overview
destination: /learn/cli-api-reference/api-reference/overview
- permanent: true
- source: /learn/api-reference/snippets/:slug*
destination: /learn/cli-api-reference/api-reference/snippets/:slug*
- permanent: true
- source: /learn/api-reference/tokens/:slug*
destination: /learn/cli-api-reference/api-reference/tokens/:slug*
- permanent: true
# ============================================================================
# API REFERENCE REDIRECTS
# ============================================================================
- source: /learn/openapi-definition/empty-page
destination: /learn/api-definitions/openapi/overview
- permanent: true
- source: /learn/asyncapi-definition/empty-page
destination: /learn/api-definitions/asyncapi/overview
- permanent: true
- source: /learn/openrpc-definition/empty-page
destination: /learn/api-definitions/openrpc/overview
- permanent: true
- source: /learn/grpc-definition/empty-page
destination: /learn/api-definitions/grpc/overview
- permanent: true
- source: /learn/fern-definition/empty-page
destination: /learn/api-definitions/ferndef/overview
- permanent: true
- source: /learn/openapi-definition/:slug*
destination: /learn/api-definitions/openapi/:slug*
- permanent: true
- source: /learn/asyncapi-definition/:slug*
destination: /learn/api-definitions/asyncapi/:slug*
- permanent: true
- source: /learn/openrpc-definition/:slug*
destination: /learn/api-definitions/openrpc/:slug*
- permanent: true
- source: /learn/grpc-definition/:slug*
destination: /learn/api-definitions/grpc/:slug*
- permanent: true
- source: /learn/fern-definition/:slug*
destination: /learn/api-definitions/ferndef/:slug*
- permanent: true
# Redirect old others.mdx extension pages to overview pages
- source: /learn/api-definitions/openapi/extensions/others
destination: /learn/api-definitions/openapi/extensions/overview
- permanent: true
- source: /learn/api-definitions/asyncapi/extensions/others
destination: /learn/api-definitions/asyncapi/extensions/overview
- permanent: true
- source: /learn/api-definitions/openrpc/extensions/others
destination: /learn/api-definitions/openrpc/extensions/overview
- permanent: true
- source: /learn/api-definitions/grpc/extensions/:slug*
destination: /learn/api-definitions/overview/overrides#definition-specific-extensions
- permanent: true
# ============================================================================
# ADDITIONAL /LEARN/* REDIRECTS FROM CRAWLED URLS FROM GOOGLE SEARCH CONSOLE
@@ -663,160 +525,111 @@ redirects:
# SDK specific redirects
- source: /learn/sdks/generators/java/publishing-to-maven-central
destination: /learn/sdks/generators/java/publishing
- permanent: true
- source: /learn/sdks/generators/php/publishing-to-packagist
destination: /learn/sdks/generators/php/publishing
- permanent: true
- source: /learn/sdks/generators/python/publishing-to-py-pi
destination: /learn/sdks/generators/python/publishing
- permanent: true
- source: /learn/sdks/generators/typescript/publishing-to-npm
destination: /learn/sdks/generators/typescript/publishing
- permanent: true
- source: /learn/sdks/generators/java/adding-custom-code
destination: /learn/sdks/generators/java/custom-code
- permanent: true
- source: /learn/sdks/reference/configuration
destination: /learn/sdks/reference/generators-yml
- permanent: true
- source: /learn/sdks/client
destination: /learn/sdks/overview/introduction
- permanent: true
- source: /learn/sdks/src
destination: /learn/sdks/overview/project-structure
- permanent: true
- source: /learn/sdks/alternatives/speakeasy
destination: /learn/sdks/overview/introduction
- permanent: true
# Docs specific redirects
- source: /learn/docs/customization/project-structure
destination: /learn/docs/getting-started/project-structure
- permanent: true
- source: /learn/docs/alternatives/mintlify
destination: /learn/docs/getting-started/overview
- permanent: true
- source: /learn/docs/api-references/api-explorer/advanced-configuration
destination: /learn/docs/api-references/api-explorer/overview
- permanent: true
- source: /learn/docs/enterprise/self-hosted
destination: /learn/docs/self-hosted/overview
- permanent: true
- source: /learn/docs/content/visual-editor-beta
destination: /learn/docs/writing-content/fern-editor
- permanent: true
- source: /learn/docs/content/visual-editor
destination: /learn/docs/writing-content/fern-editor
- permanent: true
- source: /learn/docs/content
destination: /learn/docs/writing-content/markdown
- permanent: true
- source: /learn/docs/config/overview
destination: /learn/docs/configuration/what-is-docs-yml
- permanent: true
- source: /learn/docs/llms.txt8
destination: /learn/docs/seo/llms-txt
- permanent: true
- source: /learn/docs/path/to/asset.pdf
destination: /learn/docs/getting-started/overview
- permanent: true
- source: /learn/docs/components/tabs
destination: /learn/docs/writing-content/components/tabs
- permanent: true
- source: /learn/docs/components/CustomCard
destination: /learn/docs/writing-content/custom-react-components
- permanent: true
# API Definition redirects
- source: /learn/api-definition/openapi/webhooks
destination: /learn/api-definitions/openapi/endpoints/webhooks
- permanent: true
- source: /learn/api-definition/introduction
destination: /learn/api-definitions/overview/what-is-an-api-definition
- permanent: true
- source: /learn/api-definition/openapi/streaming-and-sse
destination: /learn/api-definitions/openapi/endpoints/streaming-and-sse
- permanent: true
- source: /learn/api-definition/openapi/audiences
destination: /learn/api-definitions/openapi/audiences
- permanent: true
- source: /learn/api-definition/openapi/examples
destination: /learn/api-definitions/openapi/examples
- permanent: true
- source: /learn/api-definition/fern/comparison-with-open-api
destination: /learn/api-definitions/ferndef/overview
- permanent: true
- source: /learn/api-definitions/openapi/openapi.yml
destination: /learn/api-definitions/openapi/overview
- permanent: true
- source: /learn/api-definitions/ferndef/web-sockets
destination: /learn/api-definitions/ferndef/websockets
- permanent: true
- source: /learn/api-definitions/grpc/extensions/server-name
destination: /learn/api-definitions/grpc/servers
- permanent: true
- source: /learn/api-definitions/grpc/extensions/timeout
destination: /learn/api-definitions/grpc/overview
- permanent: true
- source: /learn/api-definitions/asyncapi/extensions/server-name
destination: /learn/api-definitions/asyncapi/extensions/server-names
- permanent: true
- source: /learn/api-definitions/openrpc/extensions/sdk-group-name
destination: /learn/api-definitions/openrpc/extensions/sdk-group-names
- permanent: true
- source: /learn/api-definitions/openrpc/extensions/examples
destination: /learn/api-definitions/openrpc/examples
- permanent: true
- source: /learn/api-definitions/openrpc/extensions/retry
destination: /learn/api-definitions/openrpc/extensions/retry-behavior
- permanent: true
- source: /learn/overview/define-your-api/openapi/extensions
destination: /learn/api-definitions/openapi/extensions/overview
- permanent: true
# CLI & API Reference redirects
- source: /learn/cli-api/cli-reference
destination: /learn/cli-api-reference/cli-reference/overview
- permanent: true
- source: /learn/cli-api/api-reference/tokens/generate
destination: /learn/cli-api-reference/api-reference/tokens/generate
- permanent: true
- source: /learn/cli-api/api-reference/tokens
destination: /learn/cli-api-reference/api-reference/tokens/generate
- permanent: true
- source: /learn/cli-api/api-reference/overview
destination: /learn/cli-api-reference/api-reference/overview
- permanent: true
- source: /learn/api/api-reference/docs/generate
destination: /learn/cli-api-reference/api-reference/overview
- permanent: true
- source: /learn/api-reference/sdk/generate/~explorer
destination: /learn/cli-api-reference/api-reference/sdk/generate
- permanent: true
# Ask Fern redirects
- source: /learn/ask-fern/features/custom-fa-qs
destination: /learn/ask-fern/features/citations
- permanent: true
- source: /learn/ai-search/getting-started/ai-search-customer-showcase
destination: https://buildwithfern.com/showcase#ask-fern-customers
- permanent: true
- source: /learn/ask-fern/api-reference/conversations/get-conversation
destination: /learn/ask-fern/api-reference/overview
- permanent: true
- source: /learn/ask-fern/api-reference/queries/:slug*
destination: /learn/ask-fern/api-reference/overview
- permanent: true
# V2 legacy paths (old version of docs)
- source: /learn/v2/:slug*
destination: /learn/:slug*
- permanent: true
# Misc legacy learn paths
- source: /learn/snippets/example.ts
destination: /learn/cli-api-reference/api-reference/snippets/load
- permanent: true
- source: /learn/cli-reference/path/to/file.pdf
destination: /learn/cli-api-reference/cli-reference/overview
- permanent: true
diff --git a/fern/snippets/redirects.mdx b/fern/snippets/redirects.mdx
index 2915e099e..d21f0573a 100644
--- a/fern/snippets/redirects.mdx
+++ b/fern/snippets/redirects.mdx
@@ -11,7 +11,6 @@ If your docs are hosted on a subpath (like `buildwithfern.com/learn`), include t
destination: "/new-path"
- source: "/old-folder/path"
destination: "/new-folder/path"
- permanent: true
- source: "/old-folder/path"
destination: "https://www.example.com/fern" # External destination
@@ -19,7 +18,12 @@ If your docs are hosted on a subpath (like `buildwithfern.com/learn`), include t
- source: "/old-folder/:slug" # Matches single segments: /old-folder/foo
destination: "/new-folder/:slug"
- source: "/old-folder/:slug*" # Matches multiple segments: /old-folder/foo/bar/baz
- destination: "/new-folder/:slug*"
+ destination: "/new-folder/:slug*"
+
+ # Optional: Configure temporary redirects
+ - source: "/temporary-path"
+ destination: "/new-path"
+ permanent: false # Use 307 status code for temporary redirects
```
@@ -28,15 +32,15 @@ If your docs are hosted on a subpath (like `buildwithfern.com/learn`), include t
- The internal path that you want to redirect from.
+ The incoming request path pattern.
- The path or URL that you want to redirect to. Can be an internal path (`/new-path`) or an external URL (`https://example.com`). External URLs must include the full address, including `https`.
+ The path you want to route to. Can be an internal path (`/new-path`) or an external URL (`https://example.com`). External URLs must include the full address, including `https`.
- Toggle between **permanent** and **temporary** redirects (default `false`). When true, the status code is 308. When false, the status code is 307.
+ `true` or `false` - default is `true`. If `true`, uses the 308 status code which instructs clients/search engines to cache the redirect forever. If `false`, uses the 307 status code which is temporary and is not cached.
### Best practices
@@ -79,4 +83,4 @@ Manually overriding the default versioning behavior can lead to unexpected redir
If you frequently need to redirect from the default version to another version, consider changing which version is set as default in your versions configuration.
-
\ No newline at end of file
+