From 00c5a132ab9f70f4527dd14c9dd969ceb8bd81f9 Mon Sep 17 00:00:00 2001 From: Ricardo Carneiro Date: Sat, 24 Jan 2026 21:05:50 -0300 Subject: [PATCH] fix: redirect loop infinito em URLs com cultura MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O middleware redirecionava /pt-BR/* para /pt-BR/* causando ERR_TOO_MANY_REDIRECTS. Adicionada verificação case-sensitive para evitar redirect quando URL já está na forma canônica. Co-Authored-By: Claude Opus 4.5 --- Middleware/LanguageRedirectionMiddleware.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Middleware/LanguageRedirectionMiddleware.cs b/Middleware/LanguageRedirectionMiddleware.cs index d6851eb..9d5fecc 100644 --- a/Middleware/LanguageRedirectionMiddleware.cs +++ b/Middleware/LanguageRedirectionMiddleware.cs @@ -12,7 +12,8 @@ namespace QRRapidoApp.Middleware { { "pt", "pt-BR" }, { "pt-br", "pt-BR" }, - { "es", "es-PY" } + { "es", "es-PY" }, + { "es-py", "es-PY" } }; private const string DefaultCulture = "pt-BR"; @@ -91,6 +92,12 @@ namespace QRRapidoApp.Middleware var firstSegment = segments[0]; if (_cultureAliases.TryGetValue(firstSegment, out var mappedCulture)) { + // Don't redirect if already using the canonical culture (case-sensitive check) + if (firstSegment == mappedCulture) + { + return false; + } + var remainingSegments = segments.Length > 1 ? "/" + string.Join('/', segments.Skip(1)) : string.Empty;