[[redirects]] from = "/blog/*" to = "https://goauthentik.io/blog/:splat" # Migration from docs to separate directory [[redirects]] from = "/docs/integrations/*" to = "/integrations/:splat" # Docusaurus update removes index [[redirects]] from = "/docs/:firstPart/index" to = "/docs/:firstPart/" status = 302 force = true [[redirects]] from = "/docs/:firstPart/:secondPart/index" to = "/docs/:firstPart/:secondPart/" status = 302 force = true [[redirects]] from = "/integrations/:firstPart/index" to = "/integrations/:firstPart/" status = 302 force = true [[redirects]] from = "/integrations/:firstPart/:secondPart/index" to = "/integrations/:firstPart/:secondPart/" status = 302 force = true [[headers]] for = "/*" [headers.values] X-Frame-Options = "DENY" [dev] command = "npm run watch" targetPort = 3000 publish = "build" # Moving doc files [[redirects]] from = "/docs/core/applications" to = "/docs/applications" status = 302 # Moved Sources from Integrations to Docs [[redirects]] from = "/integrations/sources/*" to = "/docs/sources/:splat" status = 302 # Split Property Mappings docs between Providers and Sources [[redirects]] from = "/docs/property-mappings/" to = "/docs/providers/property-mappings/" status = 302 [[redirects]] from = "/docs/property-mappings/expression" to = "/docs/providers/property-mappings/expression" status = 302 [[redirects]] from = "/docs/add-secure-apps/flows-stages/flow/layouts.md" to = "/docs/add-secure-apps/flows-stages/flow/executors/if-flow.md" status = 302 # Migration to new structure with script Sept 2025 [[redirects]] from = "/docs/advanced/tenancy" to = "/docs/sys-mgmt/tenancy" status = 302 force = true [[redirects]] from = "/docs/applications/" to = "/docs/add-secure-apps/applications/" status = 302 force = true [[redirects]] from = "/docs/applications/manage_apps" to = "/docs/add-secure-apps/applications/manage_apps" status = 302 force = true [[redirects]] from = "/docs/core/brands" to = "/docs/customize/brands" status = 302 force = true [[redirects]] from = "/docs/core/certificates" to = "/docs/sys-mgmt/certificates" status = 302 force = true [[redirects]] from = "/docs/core/geoip" to = "/docs/install-config/geoip" status = 302 force = true [[redirects]] from = "/docs/core/settings" to = "/docs/sys-mgmt/settings" status = 302 force = true [[redirects]] from = "/docs/events/" to = "/docs/sys-mgmt/events/" status = 302 force = true [[redirects]] from = "/docs/events/notifications" to = "/docs/sys-mgmt/events/notifications" status = 302 force = true [[redirects]] from = "/docs/events/transports" to = "/docs/sys-mgmt/events/transports" status = 302 force = true [[redirects]] from = "/docs/flow/context/" to = "/docs/add-secure-apps/flows-stages/flow/context/" status = 302 force = true [[redirects]] from = "/docs/flow/examples/flows" to = "/docs/add-secure-apps/flows-stages/flow/examples/flows" status = 302 force = true [[redirects]] from = "/docs/flow/examples/snippets" to = "/docs/add-secure-apps/flows-stages/flow/examples/snippets" status = 302 force = true [[redirects]] from = "/docs/flow/executors/headless" to = "/docs/add-secure-apps/flows-stages/flow/executors/headless" status = 302 force = true [[redirects]] from = "/docs/flow/executors/if-flow" to = "/docs/add-secure-apps/flows-stages/flow/executors/if-flow" status = 302 force = true [[redirects]] from = "/docs/flow/executors/sfe" to = "/docs/add-secure-apps/flows-stages/flow/executors/sfe" status = 302 force = true [[redirects]] from = "/docs/flow/executors/user-settings" to = "/docs/add-secure-apps/flows-stages/flow/executors/user-settings" status = 302 force = true [[redirects]] from = "/docs/flow/" to = "/docs/add-secure-apps/flows-stages/flow/" status = 302 force = true [[redirects]] from = "/docs/flow/inspector" to = "/docs/add-secure-apps/flows-stages/flow/inspector" status = 302 force = true [[redirects]] from = "/docs/flow/layouts" to = "/docs/add-secure-apps/flows-stages/flow/layouts" status = 302 force = true [[redirects]] from = "/docs/flow/stages/authenticator_duo/" to = "/docs/add-secure-apps/flows-stages/stages//authenticator_duo/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/authenticator_sms/" to = "/docs/add-secure-apps/flows-stages/stages/authenticator_sms/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/authenticator_static/" to = "/docs/add-secure-apps/flows-stages/stages/authenticator_static/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/authenticator_totp/" to = "/docs/add-secure-apps/flows-stages/stages/authenticator_totp/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/authenticator_validate/" to = "/docs/add-secure-apps/flows-stages/stages/authenticator_validate/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/authenticator_webauthn/" to = "/docs/add-secure-apps/flows-stages/stages/authenticator_webauthn/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/captcha/" to = "/docs/add-secure-apps/flows-stages/stages/captcha/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/deny" to = "/docs/add-secure-apps/flows-stages/stages/deny" status = 302 force = true [[redirects]] from = "/docs/flow/stages/email/x" to = "/docs/add-secure-apps/flows-stages/stages/email/x" status = 302 force = true [[redirects]] from = "/docs/flow/stages/identification/" to = "/docs/add-secure-apps/flows-stages/stages/identification/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/" to = "/docs/add-secure-apps/flows-stages/stages/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/invitation/" to = "/docs/add-secure-apps/flows-stages/stages/invitation/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/password/" to = "/docs/add-secure-apps/flows-stages/stages/password/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/prompt/" to = "/docs/add-secure-apps/flows-stages/stages/prompt/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/source/" to = "/docs/add-secure-apps/flows-stages/stages/source/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/user_delete" to = "/docs/add-secure-apps/flows-stages/stages/user_delete" status = 302 force = true [[redirects]] from = "/docs/flow/stages/user_login/" to = "/docs/add-secure-apps/flows-stages/stages/user_login/" status = 302 force = true [[redirects]] from = "/docs/flow/stages/user_logout" to = "/docs/add-secure-apps/flows-stages/stages/user_logout" status = 302 force = true [[redirects]] from = "/docs/flow/stages/user_write" to = "/docs/add-secure-apps/flows-stages/stages/user_write" status = 302 force = true [[redirects]] from = "/docs/installation/air-gapped" to = "/docs/install-config/air-gapped" status = 302 force = true [[redirects]] from = "/docs/installation/automated-install" to = "/docs/install-config/automated-install" status = 302 force = true [[redirects]] from = "/docs/installation/beta" to = "/docs/install-config/beta" status = 302 force = true [[redirects]] from = "/docs/installation/configuration" to = "/docs/install-config/configuration/configuration" status = 302 force = true [[redirects]] from = "/docs/installation/docker-compose" to = "/docs/install-config/install/docker-compose" status = 302 force = true [[redirects]] from = "/docs/installation/x" to = "/docs/install-config/x" status = 302 force = true [[redirects]] from = "/docs/installation/kubernetes" to = "/docs/install-config/install/kubernetes" status = 302 force = true [[redirects]] from = "/docs/installation/monitoring" to = "/docs/sys-mgmt/ops/monitoring" status = 302 force = true [[redirects]] from = "/docs/installation/reverse-proxy" to = "/docs/install-config/reverse-proxy" status = 302 force = true [[redirects]] from = "/docs/installation/storage-s3" to = "/docs/install-config/storage-s3" status = 302 force = true [[redirects]] from = "/docs/installation/upgrade" to = "/docs/install-config/upgrade" status = 302 force = true [[redirects]] from = "/docs/interfaces/_global/customcss" to = "/docs/customize/interfaces/_global/customcss" status = 302 force = true [[redirects]] from = "/docs/interfaces/_global/global" to = "/docs/customize/interfaces/_global/global" status = 302 force = true [[redirects]] from = "/docs/interfaces/admin/customization" to = "/docs/customize/interfaces/admin/customization" status = 302 force = true [[redirects]] from = "/docs/interfaces/flow/customization" to = "/docs/customize/interfaces/flow/customization" status = 302 force = true [[redirects]] from = "/docs/interfaces/user/customization" to = "/docs/customize/interfaces/user/customization" status = 302 force = true [[redirects]] from = "/docs/outposts/_config" to = "/docs/add-secure-apps/outposts/_config" status = 302 force = true [[redirects]] from = "/docs/outposts/embedded/embedded" to = "/docs/add-secure-apps/outposts/embedded/embedded" status = 302 force = true [[redirects]] from = "/docs/outposts/x" to = "/docs/add-secure-apps/outposts/x" status = 302 force = true [[redirects]] from = "/docs/outposts/integrations/docker" to = "/docs/add-secure-apps/outposts/integrations/docker" status = 302 force = true [[redirects]] from = "/docs/outposts/integrations/kubernetes" to = "/docs/add-secure-apps/outposts/integrations/kubernetes" status = 302 force = true [[redirects]] from = "/docs/outposts/manual-deploy-docker-compose" to = "/docs/add-secure-apps/outposts/manual-deploy-docker-compose" status = 302 force = true [[redirects]] from = "/docs/outposts/manual-deploy-kubernetes" to = "/docs/add-secure-apps/outposts/manual-deploy-kubernetes" status = 302 force = true [[redirects]] from = "/docs/outposts/upgrading" to = "/docs/add-secure-apps/outposts/upgrading" status = 302 force = true [[redirects]] from = "/docs/policies/expression" to = "/docs/customize/policies/expression" status = 302 force = true [[redirects]] from = "/docs/policies/" to = "/docs/customize/policies/" status = 302 force = true [[redirects]] from = "/docs/policies/working_with_policies/unique_email" to = "/docs/customize/policies/expression/unique_email" status = 302 force = true [[redirects]] from = "/docs/customize/policies/working_with_policies/unique_email" to = "/docs/customize/policies/expression/unique_email" status = 302 force = true [[redirects]] from = "/docs/policies/working_with_policies/whitelist_email" to = "/docs/customize/policies/expression/whitelist_email" status = 302 force = true [[redirects]] from = "/docs/customize/policies/working_with_policies/whitelist_email" to = "/docs/customize/policies/expression/whitelist_email" status = 302 force = true [[redirects]] from = "/docs/policies/working_with_policies/working_with_policies" to = "/docs/customize/policies/working_with_policies/working_with_policies" status = 302 force = true [[redirects]] from = "/docs/providers/entra/add-entra-provider" to = "/docs/add-secure-apps/providers/entra/add-entra-provider" status = 302 force = true [[redirects]] from = "/docs/providers/entra/" to = "/docs/add-secure-apps/providers/entra/" status = 302 force = true [[redirects]] from = "/docs/providers/entra/setup-entra" to = "/docs/add-secure-apps/providers/entra/setup-entra" status = 302 force = true [[redirects]] from = "/docs/providers/gws/add-gws-provider" to = "/docs/add-secure-apps/providers/gws/add-gws-provider" status = 302 force = true [[redirects]] from = "/docs/providers/gws/" to = "/docs/add-secure-apps/providers/gws/" status = 302 force = true [[redirects]] from = "/docs/providers/gws/setup-gws" to = "/docs/add-secure-apps/providers/gws/setup-gws" status = 302 force = true [[redirects]] from = "/docs/providers/x" to = "/docs/add-secure-apps/providers/x" status = 302 force = true [[redirects]] from = "/docs/providers/ldap/generic_setup" to = "/docs/add-secure-apps/providers/ldap/generic_setup" status = 302 force = true [[redirects]] from = "/docs/providers/ldap/" to = "/docs/add-secure-apps/providers/ldap/" status = 302 force = true [[redirects]] from = "/docs/providers/oauth2/client_credentials" to = "/docs/add-secure-apps/providers/oauth2/client_credentials" status = 302 force = true [[redirects]] from = "/docs/providers/oauth2/device_code" to = "/docs/add-secure-apps/providers/oauth2/device_code" status = 302 force = true [[redirects]] from = "/docs/providers/oauth2/" to = "/docs/add-secure-apps/providers/oauth2/" status = 302 force = true [[redirects]] from = "/docs/providers/property-mappings/expression" to = "/docs/add-secure-apps/providers/property-mappings/expression" status = 302 force = true [[redirects]] from = "/docs/providers/property-mappings/" to = "/docs/add-secure-apps/providers/property-mappings/" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/__placeholders" to = "/docs/add-secure-apps/providers/proxy/__placeholders" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/_caddy_standalone" to = "/docs/add-secure-apps/providers/proxy/_caddy_standalone" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/_envoy_istio" to = "/docs/add-secure-apps/providers/proxy/_envoy_istio" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/_nginx_ingress" to = "/docs/add-secure-apps/providers/proxy/_nginx_ingress" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/_nginx_proxy_manager" to = "/docs/add-secure-apps/providers/proxy/_nginx_proxy_manager" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/_nginx_standalone" to = "/docs/add-secure-apps/providers/proxy/_nginx_standalone" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/_traefik_compose" to = "/docs/add-secure-apps/providers/proxy/_traefik_compose" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/_traefik_ingress" to = "/docs/add-secure-apps/providers/proxy/_traefik_ingress" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/_traefik_standalone" to = "/docs/add-secure-apps/providers/proxy/_traefik_standalone" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/custom_headers" to = "/docs/add-secure-apps/providers/proxy/custom_headers" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/forward_auth" to = "/docs/add-secure-apps/providers/proxy/forward_auth" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/header_authentication" to = "/docs/add-secure-apps/providers/proxy/header_authentication" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/" to = "/docs/add-secure-apps/providers/proxy/" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/server_caddy" to = "/docs/add-secure-apps/providers/proxy/server_caddy" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/server_envoy" to = "/docs/add-secure-apps/providers/proxy/server_envoy" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/server_nginx" to = "/docs/add-secure-apps/providers/proxy/server_nginx" status = 302 force = true [[redirects]] from = "/docs/providers/proxy/server_traefik" to = "/docs/add-secure-apps/providers/proxy/server_traefik" status = 302 force = true [[redirects]] from = "/docs/providers/rac/how-to-rac" to = "/docs/add-secure-apps/providers/rac/how-to-rac" status = 302 force = true [[redirects]] from = "/docs/providers/rac/" to = "/docs/add-secure-apps/providers/rac/" status = 302 force = true [[redirects]] from = "/docs/providers/radius/" to = "/docs/add-secure-apps/providers/radius/" status = 302 force = true [[redirects]] from = "/docs/providers/saml/" to = "/docs/add-secure-apps/providers/saml/" status = 302 force = true [[redirects]] from = "/docs/providers/scim/" to = "/docs/add-secure-apps/providers/scim/" status = 302 force = true [[redirects]] from = "/docs/security/2023-06-cure53" to = "/docs/security/audits-and-certs/2023-06-cure53" status = 302 force = true [[redirects]] from = "/docs/security/CVE-2022-23555" to = "/docs/security/cves/CVE-2022-23555" status = 302 force = true [[redirects]] from = "/docs/security/CVE-2022-46145" to = "/docs/security/cves/CVE-2022-46145" status = 302 force = true [[redirects]] from = "/docs/security/CVE-2022-46172" to = "/docs/security/cves/CVE-2022-46172" status = 302 force = true [[redirects]] from = "/docs/security/CVE-2024-42490" to = "/docs/security/cves/CVE-2024-42490" status = 302 force = true [[redirects]] from = "/docs/security/CVE-2023-26481" to = "/docs/security/cves/CVE-2023-26481" status = 302 force = true [[redirects]] from = "/docs/security/CVE-2023-36456" to = "/docs/security/cves/CVE-2023-36456" status = 302 force = true [[redirects]] from = "/docs/security/CVE-2023-39522" to = "/docs/security/cves/CVE-2023-39522" status = 302 force = true [[redirects]] from = "/docs/security/CVE-2023-48228" to = "/docs/security/cves/CVE-2023-48228" status = 302 force = true [[redirects]] from = "/docs/security/CVE-2024-21637" to = "/docs/security/cves/CVE-2024-21637" status = 302 force = true [[redirects]] from = "/docs/security/CVE-2024-23647" to = "/docs/security/cves/CVE-2024-23647" status = 302 force = true [[redirects]] from = "/docs/security/CVE-2024-37905" to = "/docs/security/cves/CVE-2024-37905" status = 302 force = true [[redirects]] from = "/docs/security/CVE-2024-38371" to = "/docs/security/cves/CVE-2024-38371" status = 302 force = true [[redirects]] from = "/docs/security/GHSA-rjvp-29xq-f62w" to = "/docs/security/cves/GHSA-rjvp-29xq-f62w" status = 302 force = true [[redirects]] from = "/docs/sources/active-directory/" to = "/docs/users-sources/sources/directory-sync/active-directory/" status = 302 force = true [[redirects]] from = "/docs/sources/apple/" to = "/docs/users-sources/sources/social-logins/apple/" status = 302 force = true [[redirects]] from = "/docs/sources/azure-ad/" to = "/docs/users-sources/sources/social-logins/azure-ad/" status = 302 force = true [[redirects]] from = "/docs/sources/discord/" to = "/docs/users-sources/sources/social-logins/discord/" status = 302 force = true [[redirects]] from = "/docs/sources/facebook/" to = "/docs/users-sources/sources/social-logins/facebook/" status = 302 force = true [[redirects]] from = "/docs/sources/freeipa/" to = "/docs/users-sources/sources/directory-sync/freeipa/" status = 302 force = true [[redirects]] from = "/docs/sources/github/" to = "/docs/users-sources/sources/social-logins/github/" status = 302 force = true [[redirects]] from = "/docs/sources/google/" to = "/docs/users-sources/sources/social-logins/google/" status = 302 force = true [[redirects]] from = "/docs/sources/" to = "/docs/users-sources/sources/" status = 302 force = true [[redirects]] from = "/docs/sources/ldap/" to = "/docs/users-sources/sources/protocols/ldap/" status = 302 force = true [[redirects]] from = "/docs/sources/mailcow/" to = "/docs/users-sources/sources/social-logins/mailcow/" status = 302 force = true [[redirects]] from = "/docs/sources/oauth/" to = "/docs/users-sources/sources/protocols/oauth/" status = 302 force = true [[redirects]] from = "/docs/sources/plex/" to = "/docs/users-sources/sources/social-logins/plex/" status = 302 force = true [[redirects]] from = "/docs/sources/property-mappings/expressions" to = "/docs/users-sources/sources/property-mappings/expressions" status = 302 force = true [[redirects]] from = "/docs/sources/property-mappings/" to = "/docs/users-sources/sources/property-mappings/" status = 302 force = true [[redirects]] from = "/docs/sources/saml/" to = "/docs/users-sources/sources/protocols/saml/" status = 302 force = true [[redirects]] from = "/docs/sources/scim/" to = "/docs/users-sources/sources/protocols/scim/" status = 302 force = true [[redirects]] from = "/docs/sources/twitch/" to = "/docs/users-sources/sources/social-logins/twitch/" status = 302 force = true [[redirects]] from = "/docs/sources/twitter/" to = "/docs/users-sources/sources/social-logins/twitter/" status = 302 force = true [[redirects]] from = "/docs/user-group-role/access-control/x" to = "/docs/users-sources/access-control/x" status = 302 force = true [[redirects]] from = "/docs/user-group-role/access-control/manage_permissions" to = "/docs/users-sources/access-control/manage_permissions" status = 302 force = true [[redirects]] from = "/docs/user-group-role/access-control/permissions" to = "/docs/users-sources/access-control/permissions" status = 302 force = true [[redirects]] from = "/docs/user-group-role/groups/group_ref" to = "/docs/users-sources/groups/group_ref" status = 302 force = true [[redirects]] from = "/docs/user-group-role/groups/x" to = "/docs/users-sources/groups/x" status = 302 force = true [[redirects]] from = "/docs/user-group-role/groups/manage_groups" to = "/docs/users-sources/groups/manage_groups" status = 302 force = true [[redirects]] from = "/docs/user-group-role/roles/x" to = "/docs/users-sources/roles/" status = 302 force = true [[redirects]] from = "/docs/user-group-role/roles/manage_roles" to = "/docs/users-sources/roles/manage_roles" status = 302 force = true [[redirects]] from = "/docs/user-group-role/user/x" to = "/docs/users-sources/user/x" status = 302 force = true [[redirects]] from = "/docs/user-group-role/user/invitations" to = "/docs/users-sources/user/invitations" status = 302 force = true [[redirects]] from = "/docs/user-group-role/user/user_basic_operations" to = "/docs/users-sources/user/user_basic_operations" status = 302 force = true [[redirects]] from = "/docs/user-group-role/user/user_ref" to = "/docs/users-sources/user/user_ref" status = 302 force = true # Manual redirects, moved Dev Docs into regular docs Sept 2024 [[redirects]] from = "/developer-docs/" to = "/docs/developer-docs/" status = 302 force = true [[redirects]] from = "/developer-docs/setup/full-dev-environment" to = "/docs/developer-docs/setup/full-dev-environment" status = 302 force = true [[redirects]] from = "/developer-docs/setup/frontend-dev-environment" to = "/docs/developer-docs/setup/frontend-dev-environment" status = 302 force = true [[redirects]] from = "/developer-docs/setup/website-dev-environment" to = "/docs/developer-docs/setup/website-dev-environment" status = 302 force = true [[redirects]] from = "/schema.yaml" to = "/schema.yml" status = 302 force = true [[redirects]] from = "/developer-docs/api/api" to = "/docs/developer-docs/api/api" status = 302 force = true [[redirects]] from = "/developer-docs/api/reference/*" to = "/docs/developer-docs/api/reference/:splat" status = 302 force = true [[redirects]] from = "/developer-docs/api/flow-executor" to = "/docs/developer-docs/api/flow-executor" status = 302 force = true [[redirects]] from = "/developer-docs/api/making-schema-changes" to = "/docs/developer-docs/api/making-schema-changes" status = 302 force = true [[redirects]] from = "/developer-docs/api/websocket" to = "/docs/developer-docs/api/websocket" status = 302 force = true [[redirects]] from = "/developer-docs/api/clients" to = "/docs/developer-docs/api/clients" status = 302 force = true [[redirects]] from = "/developer-docs/blueprints" to = "/docs/customize/blueprints" status = 302 force = true [[redirects]] from = "/developer-docs/docs/writing-documentation" to = "/docs/developer-docs/docs/writing-documentation" status = 302 force = true [[redirects]] from = "/developer-docs/docs/style-guide" to = "/docs/developer-docs/docs/style-guide" status = 302 force = true [[redirects]] from = "/developer-docs/docs/templates/index" to = "/docs/developer-docs/docs/templates/index" status = 302 force = true [[redirects]] from = "/developer-docs/docs/templates/procedural" to = "/docs/developer-docs/docs/templates/procedural" status = 302 force = true [[redirects]] from = "/developer-docs/docs/templates/conceptual" to = "/docs/developer-docs/docs/templates/conceptual" status = 302 force = true [[redirects]] from = "/developer-docs/docs/templates/reference" to = "/docs/developer-docs/docs/templates/reference" status = 302 force = true [[redirects]] from = "/developer-docs/docs/templates/combo" to = "/docs/developer-docs/docs/templates/combo" status = 302 force = true [[redirects]] from = "/developer-docs/releases/index" to = "/docs/developer-docs/releases/index" status = 302 force = true [[redirects]] from = "/developer-docs/translation" to = "/docs/developer-docs/translation" status = 302 force = true # Moved GeoIP and S3 under System Management/user_basic_operations [[redirects]] from = "/docs/install-config/storage-s3" to = "/docs/sys-mgmt/ops/storage-s3" status = 302 force = true [[redirects]] from = "/docs/install-config/geoip" to = "/docs/sys-mgmt/ops/geoip" status = 302 force = true