trailingSlash true ponía barra en todo (/es/content-creators/). Se pasa a
skipTrailingSlashRedirect + normalización en middleware: raíz de idioma /es → /es/
(con barra), y cualquier sub-ruta con barra final se redirige sin ella
(/es/x/ → /es/x). Sin bucles. Las /api quedan fuera del middleware (sin 308).
El redirect del logout apunta a /es/.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
next.config: trailingSlash true → /es redirige a /es/ y los enlaces se generan
con barra. Se ajustan a barra final los destinos internos que se enlazan a mano
(logout /log-out/ y su redirect, y los window.location.assign de login/
select-account) para evitar el salto 308 extra.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Construir la URL desde request.url daba https://localhost:3001/es detrás de Caddy
(usa la dirección interna). Ahora el Location es relativo (/es), que el navegador
resuelve contra el dominio público real.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Route Handler GET en app/[locale]/log-out: destruye la cookie de sesión y
redirige (303) a /{locale}. Enlace directo visitable (/es/log-out, /en/log-out)
sin depender de JS; reutiliza getSession().destroy().
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>