KakapoWPKakapoWP
EntrarProbar gratis
Centro de ayuda/Security/Cambiar la dirección de acceso: configurar, comprobar, revertir

Cambiar la dirección de acceso: configurar, comprobar, revertir

Válido para: Kakapo Security·4 Min. Lesezeit

Qué tiene que estar en orden antes

De fábrica la función está desactivada y nunca se activa por sí sola. Tres cosas impiden por completo el traslado — el interruptor queda entonces bloqueado e indica el motivo: (1) En la wp-config.php está el freno de emergencia define( 'KWPSEC_LOGIN_SLUG_OFF', true );. (2) La instalación es una red multisitio; allí todos los sitios comparten un mismo inicio de sesión, y el traslado tendría que hacerse para toda la red. (3) Los enlaces permanentes están en «Simple». Entonces una ruta como /gartentor no llega a ningún PHP: el servidor web responde antes con 404. Cambia a otra estructura en Configuración › Enlaces permanentes antes de continuar.

Elegir una ruta

Se permiten de 3 a 40 caracteres: minúsculas, cifras, guion y guion bajo. Nada de barras, ni letras acentuadas o con diéresis, ni puntos; las mayúsculas se pasan a minúsculas. Al guardar se ejecutan cuatro comprobaciones: los nombres de las listas de bots habituales (login, wp-login, admin, wp-admin, anmelden, dashboard y similares) se rechazan, porque volverían a encontrarse en cuestión de minutos. Si en la instalación de WordPress ya existe un archivo o un directorio con ese nombre, se rechaza — el servidor web lo entregaría antes de que se preguntara a PHP. Las rutas reservadas como wp-json, feed, author, category, sitemap o favicon están bloqueadas. Y si bajo esa ruta ya hay una entrada o una página, se rechaza, porque después dejaría de ser accesible. Una ruta guardada todavía no rige: solo surte efecto cuando además activas el traslado.

Activar: qué ocurre automáticamente

Al accionar el interruptor se guarda el ajuste y el servidor lanza después dos peticiones HTTP reales contra la propia instalación: una a la dirección nueva y otra a la antigua. Cada llamada tiene un límite de 8 segundos, no sigue redirecciones y no envía cookies. Como prueba de que ha respondido realmente la página de inicio de sesión, se busca en el texto devuelto id="loginform" y name="log". Si la dirección nueva responde con HTTP 404 y sin formulario de inicio de sesión, el cambio se revierte de inmediato y se restablece el estado anterior — en nginx suele faltar en ese caso la línea try_files, y en Apache el .htaccess. Si la comprobación sale bien, el plugin envía la dirección nueva en un correo de solo texto a la dirección de notificación guardada (en su defecto, al correo electrónico del administrador); en el mensaje figura también la línea del freno de emergencia para la wp-config.php. La respuesta dice sin adornos si wp_mail() ha aceptado el mensaje — si no, apunta ahora la dirección. También se escribe una entrada en el registro de actividad.

Qué cambia en el funcionamiento

Bajo la nueva ruta se incluye el archivo original wp-login.php, no se reconstruye — las actualizaciones de seguridad de WordPress surten efecto ahí de inmediato. Para quien no ha iniciado sesión, /wp-login.php se comporta como cualquier dirección que no existe: la petición se reescribe a una ruta sin contenido y el tema la muestra con toda normalidad como un 404, sin mensaje de error propio — un mensaje propio sería la pista de que aquí hay algo escondido. Quien ha iniciado sesión sigue pasando; eso es intencionado. Si alguien sin sesión abre /wp-admin/, se le lleva con un 302 a la página de inicio en lugar de al inicio de sesión, porque si no la nueva dirección aparecería en la cabecera Location. admin-ajax.php, admin-post.php, load-styles.php y load-scripts.php siguen accesibles para que los formularios de contacto, los carritos y las valoraciones continúen funcionando. Todas las direcciones que WordPress genera mediante site_url(), network_site_url() o wp_redirect() — wp_login_url(), wp_logout_url(), wp_lostpassword_url(), el atributo action del formulario — apuntan automáticamente a la nueva ruta.

Si te quedas fuera o algo se atasca

Primera vía: mientras en tu navegador haya una cookie de inicio de sesión válida, llegas a /wp-login.php y /wp-admin/ igual que antes. Segunda vía: la dirección aparece en el correo electrónico del cambio. Tercera vía: añade define( 'KWPSEC_LOGIN_SLUG_OFF', true ); a la wp-config.php — con eso vuelve a regir de inmediato wp-login.php, y el interruptor queda bloqueado hasta que quites esa línea. En el área de administración hay además dos botones: uno que repite la llamada de comprobación y muestra el código HTTP, el tiempo de respuesta y el estado de la dirección antigua, y otro que vuelve a enviar el correo de acceso. Si la llamada de comprobación informa de un error de red en lugar de un código HTTP, lo normal es que el loopback esté bloqueado en el alojamiento — eso no significa que la dirección no funcione; ábrela tú mismo una vez. Si un enlace de otro plugin sigue apuntando a wp-login.php, es que está fijado a fuego ahí y no pasa por site_url(); solo puede reescribirse lo que pasa por estos filtros. Puedes revertirlo en cualquier momento con el mismo interruptor.

¿Te ha resultado útil este artículo?