¿Problemas de inicio de sesión? Verifica tu dominio por guiones bajos

Recientemente migré una instalación de WordPress a un nuevo sitio y, al hacer una demostración de la nueva instalación, descubrí que no podía iniciar sesión. Revisé los lugares habituales, la base de datos tenía la URL correcta, no había redireccionamientos extraños y deshabilité TODOS los plugins. Esto llevó a 30 minutos de confusión y frustración. El inicio de sesión funcionaba desde Firefox en mi escritorio, pero fallaba en Safari y en todas las otras máquinas en las que lo probé. Esto era extraño porque la instalación estaba bien en la otra URL y no había habido cambios en los archivos. Después de investigar el tráfico hacia el navegador, descubrí que la cookie se enviaba, pero no se estaba estableciendo en Safari. Una búsqueda rápida llevó a esta revelación embarazosa. Esto es de la Identificación de Recursos Uniforme (URI): Sintaxis Genérica http://tools.ietf.org/html/rfc3986

1. Caracteres no Reservados

Los caracteres que están permitidos en un URI, pero no tienen un propósito reservado se llaman no reservados. Estos incluyen letras mayúsculas y minúsculas, dígitos decimales, guiones, puntos, guiones bajos y tilde.
no reservado = ALPHA / DIGIT / “-” / “.” / “_” / “~”

Es decir, los guiones bajos no están específicamente permitidos en los dominios. Así que, si una cookie proviene de un dominio con uno, el navegador lo está rechazando. Afortunadamente, esto era un subdominio de prueba, así que pude reubicarlo fácilmente. Algo a tener en cuenta…