From fa4c48deee795bcebd12d9ff8fda8815f0c29c1e Mon Sep 17 00:00:00 2001 From: Brian Rinaldi Date: Tue, 11 Aug 2026 08:41:48 -0400 Subject: [PATCH] Fix missing items from the top 50 404s MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed all 50 top 404 URLs from the CSV against `public/_redirects`. Most were missing redirects (likely from the Cloudflare redirect fix earlier this month), not bad targets. ## Summary | Status | Count | Action | |--------|-------|--------| | Already redirected (valid) | 5 | No change needed | | Redirect existed but target was wrong | 1 | Fixed | | Missing redirect | 44 | Added | ## Already working (5 URLs) These had valid redirects in place: - `/aws/integrations/continuous-integration/` → `/aws/ci-pipelines/` - `/aws/integrations/messaging/selfmanaged-kafka-cluster/` → self-managed Kafka doc - `/aws/enterprise/sso/` → `/aws/organizations-admin/sso/` - `/aws/capabilities/extensions/mailhog/` → mailhog extension doc (via splat) - `/aws/capabilities/networking/internal-endpoints/` → internal endpoints doc ## Fixed bad redirect (1 URL) `/aws/capabilities/networking/endpoint-url` was caught by the splat rule and sent to `/aws/customization/networking/endpoint-url`, which does not exist. Added explicit redirects to `/aws/customization/networking/accessing-endpoint-url/` (placed before the splat rules). ## Added redirects (44 URLs) High-traffic examples: | 404 URL | Redirect target | |---------|-----------------| | `/aws/getting-started/help-support/` (318 PV) | `/aws/help-support/` | | `/get-started/` (166 PV) | `/aws/getting-started/` | | `/aws/feature-coverage/` (107 PV) | `/aws/services/` | | `/references/persistence-mechanism/` (69 PV) | `/aws/developer-tools/snapshots/persistence/` | | `/localstack/configuration/` (63 PV) | `/aws/customization/` | | `/aws/enterprise/k8s-operator` (57 PV) | `/aws/customization/kubernetes/kubernetes-operator/` | | `/developer-guide/` (55 PV) | `/aws/` | | `/aws/s3/`, `/aws/sqs/`, `/aws/iam/`, etc. | Corresponding `/aws/services/*/` pages | | `/t/*.html` (3 Discourse URLs) | `https://discuss.localstack.cloud/t/...` | Also added variants for paths like `/integrations/`, `/tools/`, `/ci/`, `/getting-started/api-key/`, contributing subpages, and nested SDK paths (`/aws/connecting/aws-sdks/net/` → dotnet). Build passes with all links valid. After deploy, these 404s should drop off analytics within a few days as Cloudflare picks up the updated `_redirects` file. --- public/_redirects | 89 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/public/_redirects b/public/_redirects index d1c6bb8a..dc5fe53e 100644 --- a/public/_redirects +++ b/public/_redirects @@ -1124,6 +1124,12 @@ /aws/integrations/continuous-integration /aws/ci-pipelines/ 301 /aws/integrations/continuous-integration/ /aws/ci-pipelines/ 301 +# Fix splat redirects that map to renamed pages +/aws/capabilities/networking/endpoint-url /aws/customization/networking/accessing-endpoint-url/ 301 +/aws/capabilities/networking/endpoint-url/ /aws/customization/networking/accessing-endpoint-url/ 301 +/aws/configuration/networking/endpoint-url /aws/customization/networking/accessing-endpoint-url/ 301 +/aws/configuration/networking/endpoint-url/ /aws/customization/networking/accessing-endpoint-url/ 301 + /aws/configuration/networking/* /aws/customization/networking/:splat 301 /aws/configuration/localstack-sdks/* /aws/customization/integrations/localstack-sdks/:splat 301 /aws/configuration/extensions/* /aws/customization/integrations/extensions/:splat 301 @@ -1133,3 +1139,86 @@ /aws/enterprise/kubernetes/* /aws/customization/kubernetes/:splat 301 /aws/enterprise/sso/* /aws/organizations-admin/sso/:splat 301 /aws/integrations/continuous-integration/* /aws/ci-pipelines/:splat 301 + +# Top 404 redirects (Aug 2026 analytics audit) +/aws/getting-started/help-support /aws/help-support/ 301 +/aws/getting-started/help-support/ /aws/help-support/ 301 +/get-started /aws/getting-started/ 301 +/get-started/ /aws/getting-started/ 301 +/get-started/cockpit /aws/connecting/console/ 301 +/get-started/cockpit/ /aws/connecting/console/ 301 +/aws/feature-coverage /aws/services/ 301 +/aws/feature-coverage/ /aws/services/ 301 +/references/persistence-mechanism /aws/developer-tools/snapshots/persistence/ 301 +/references/persistence-mechanism/ /aws/developer-tools/snapshots/persistence/ 301 +/localstack /aws/ 301 +/localstack/ /aws/ 301 +/localstack/configuration /aws/customization/ 301 +/localstack/configuration/ /aws/customization/ 301 +/user-guide/tools/transparent-endpoint-injection/dns-server /aws/customization/networking/dns-server/ 301 +/user-guide/tools/transparent-endpoint-injection/dns-server/ /aws/customization/networking/dns-server/ 301 +/aws/enterprise/k8s-operator /aws/customization/kubernetes/kubernetes-operator/ 301 +/aws/enterprise/k8s-operator/ /aws/customization/kubernetes/kubernetes-operator/ 301 +/developer-guide /aws/ 301 +/developer-guide/ /aws/ 301 +/aws/integrations/testing/testcontainers /aws/customization/integrations/testing/testcontainers/ 301 +/aws/integrations/testing/testcontainers/ /aws/customization/integrations/testing/testcontainers/ 301 +/integrations/aws-cli /aws/connecting/aws-cli/ 301 +/integrations/aws-cli/ /aws/connecting/aws-cli/ 301 +/integrations/terraform /aws/connecting/infrastructure-as-code/terraform/ 301 +/integrations/terraform/ /aws/connecting/infrastructure-as-code/terraform/ 301 +/integrations /aws/customization/integrations/ 301 +/integrations/ /aws/customization/integrations/ 301 +/user-guide/tools/cloud-pods /aws/developer-tools/snapshots/cloud-pods/ 301 +/user-guide/tools/cloud-pods/ /aws/developer-tools/snapshots/cloud-pods/ 301 +/user-guide/tools/event-studio /aws/developer-tools/app-inspector/ 301 +/user-guide/tools/event-studio/ /aws/developer-tools/app-inspector/ 301 +/user-guide/tools/localstack-extensions /aws/customization/integrations/extensions/ 301 +/user-guide/tools/localstack-extensions/ /aws/customization/integrations/extensions/ 301 +/user-guide/integrations/aws-sdk /aws/connecting/aws-sdks/ 301 +/user-guide/integrations/aws-sdk/ /aws/connecting/aws-sdks/ 301 +/user-guide/aws/apigatewayv2 /aws/services/apigateway/ 301 +/user-guide/aws/apigatewayv2/ /aws/services/apigateway/ 301 +/contributing/integration-tests https://github.com/localstack/localstack/blob/main/docs/CONTRIBUTING.md 301 +/contributing/integration-tests/ https://github.com/localstack/localstack/blob/main/docs/CONTRIBUTING.md 301 +/contributing/parity-testing https://github.com/localstack/localstack/blob/main/docs/CONTRIBUTING.md 301 +/contributing/parity-testing/ https://github.com/localstack/localstack/blob/main/docs/CONTRIBUTING.md 301 +/contributing/development-environment-setup https://github.com/localstack/localstack/blob/main/docs/CONTRIBUTING.md 301 +/contributing/development-environment-setup/ https://github.com/localstack/localstack/blob/main/docs/CONTRIBUTING.md 301 +/tools /aws/developer-tools/ 301 +/tools/ /aws/developer-tools/ 301 +/tools/multi-account-setups /aws/customization/advanced/multi-account-setups/ 301 +/tools/multi-account-setups/ /aws/customization/advanced/multi-account-setups/ 301 +/getting-started/api-key /aws/getting-started/auth-token/ 301 +/getting-started/api-key/ /aws/getting-started/auth-token/ 301 +/aws/enterprise/enterprise-support /aws/help-support/enterprise-support/ 301 +/aws/enterprise/enterprise-support/ /aws/help-support/enterprise-support/ 301 +/ci /aws/ci-pipelines/ 301 +/ci/ /aws/ci-pipelines/ 301 +/aws/connecting/aws-sdks/net /aws/connecting/aws-sdks/dotnet/ 301 +/aws/connecting/aws-sdks/net/ /aws/connecting/aws-sdks/dotnet/ 301 +/aws/connecting/aws-sdks/net/javascript /aws/connecting/aws-sdks/javascript/ 301 +/aws/connecting/aws-sdks/net/javascript/ /aws/connecting/aws-sdks/javascript/ 301 +/aws/s3 /aws/services/s3/ 301 +/aws/s3/ /aws/services/s3/ 301 +/aws/sqs /aws/services/sqs/ 301 +/aws/sqs/ /aws/services/sqs/ 301 +/aws/athena /aws/services/athena/ 301 +/aws/athena/ /aws/services/athena/ 301 +/aws/iam /aws/services/iam/ 301 +/aws/iam/ /aws/services/iam/ 301 +/aws/ses /aws/services/ses/ 301 +/aws/ses/ /aws/services/ses/ 301 +/aws/services/cognito /aws/services/cognito-idp/ 301 +/aws/services/cognito/ /aws/services/cognito-idp/ 301 +/aws/integrations /aws/connecting/ 301 +/aws/integrations/ /aws/connecting/ 301 +/aws/integrations/containers/kubernetes /aws/customization/kubernetes/ 301 +/aws/integrations/containers/kubernetes/ /aws/customization/kubernetes/ 301 +/aws/integrations/containers/gitpod /aws/customization/other-installations/ 301 +/aws/integrations/containers/gitpod/ /aws/customization/other-installations/ 301 +/aws/integrations/app-frameworks/aspire /aws/customization/integrations/app-frameworks/aspire/ 301 +/aws/integrations/app-frameworks/aspire/ /aws/customization/integrations/app-frameworks/aspire/ 301 +/t/set-up-s3-bucket-using-docker-compose/646.html https://discuss.localstack.cloud/t/set-up-s3-bucket-using-docker-compose/646 301 +/t/localstack-desktop-on-wsl/656.html https://discuss.localstack.cloud/t/localstack-desktop-on-wsl/656 301 +/t/lambda-s3-nosuchbucket-error/725.html https://discuss.localstack.cloud/t/lambda-s3-nosuchbucket-error/725 301