legacy-redirect: dejar en paz /.well-known/
fea-legacy-redirect manda al archivo cualquier 404, y eso incluia /.well-known/, que nunca fue contenido de Joomla: son rutas de protocolo (retos de Let's Encrypt, security.txt, change-password). Lo encontro el Claude de Inma mirando por que no se emitian los certificados. No es lo que bloquea los certificados. El reto de LE va por el puerto 80 y ahi lo atiende Traefik, que lo intercepta antes de llegar a WordPress y no lo redirige a HTTPS: se ve en que el 404 del puerto 80 viene vacio y sin cabecera server, mientras cualquier otra ruta da 302. La configuracion lo confirma, httpchallenge.entrypoint=http. Los certificados no salen porque Traefik no ha reintentado desde las 10:44, cuando el DNS aun apuntaba a CDMON. Pero el redirect estaba mal igualmente, y es una trampa para mas adelante: si algun dia el reto llegara por el 443 (DNS-01 no, pero un cambio de entrypoint o un renovador distinto si), este 301 lo tumbaria y el certificado no se renovaria sin que nadie entendiera por que. Comprobado que lo demas sigue igual: las URLs viejas de Joomla y los 404 genuinos siguen yendo al archivo, y /es sigue llevando a la home. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,6 +12,15 @@ add_action('template_redirect', function () {
|
||||
|
||||
$path = untrailingslashit(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
|
||||
|
||||
// /.well-known/ nunca fue contenido de Joomla: son rutas de protocolo
|
||||
// (retos de Let's Encrypt, security.txt, change-password...). Mandarlas al
|
||||
// archivo es incorrecto y ademas peligroso: si algun dia el reto de ACME
|
||||
// llegara por el 443 en vez de por el 80, este redirect lo tumbaria y el
|
||||
// certificado no se renovaria. Lo encontro el Claude de Inma el 3-ago.
|
||||
if (strpos($path, '/.well-known/') === 0 || $path === '/.well-known') {
|
||||
return;
|
||||
}
|
||||
|
||||
// La antigua home de Joomla (con prefijo de idioma /es/) debe llevar a
|
||||
// la home nueva, no a la web antigua.
|
||||
if ($path === '/es') {
|
||||
|
||||
Reference in New Issue
Block a user