Cambiar URL de inicio de sesión sin plugin
Quiero cambiar la URL de inicio de sesión de mi instalación de WordPress que está en /wp-admin.php
Mi objetivo es hacerlo y estoy considerando modificar el archivo .htaccess para agregar:
RewriteRule ^login$ http://tudominio.com/wp-login.php [NC, L]
Sin embargo, por lo que entiendo, ir a /wp-admin todavía permite que las personas inicien sesión usando ese enlace. Estaba pensando en hacer algún tipo de redirección PHP para que cuando el usuario escriba /wp-admin, sea dirigido a la página 404 de no encontrado.
¿Cuál es la mejor manera de cambiar la URL de inicio de sesión sin usar un plugin y con los estándares de seguridad más altos?

Sobre cambiar la URL de inicio de sesión, ya lo hice por mi cuenta. Me ayuda a proteger mi sitio y prevenir ataques de fuerza bruta. Puedes cambiarlo en el archivo .htaccess. Pero también necesitas agregar el filtro para reemplazar la antigua URL de inicio de sesión en WordPress. Ejemplo para mi sitio web: Archivo .htaccess:
RewriteRule ^signin(.*) wp-login.php?%{QUERY_STRING}
En tu tema o plugin personalizado, puedes agregar el filtro para asegurarte de que WordPress muestre la URL de inicio de sesión correcta.
add_filter( 'login_url', 'my_login_page', 10, 2 );
function my_login_page( $login_url, $redirect ) {
return str_replace("wp-login.php","signin",$login_url);
}
add_action( 'login_form', 'replace_login_submit_form',1);
function replace_login_submit_form() {
$your_content = ob_get_contents();
$your_content = str_replace("wp-login.php","signin",$your_content);
ob_get_clean();
echo $your_content;
}
¡Espero que te pueda ayudar!

Añade este código en functions.php
después de eso no podrás acceder a tu página en https://www.thebetacoders.com/wp-admin
Ahora podrás acceder a tu página en https://www.thebetacoders.com/wp-login.php?customtext
Cambia las variables $new_login
según tus necesidades.
<?php
function redirect_to_nonexistent_page()
{
$new_login = 'customtext';
if (strpos($_SERVER['REQUEST_URI'], $new_login) === false) {
wp_safe_redirect(home_url('NonExistentPage'), 302);
exit();
}
}
add_action('login_head', 'redirect_to_nonexistent_page');
function redirect_to_actual_login()
{
$new_login = 'customtext';
if (parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY) == $new_login && ($_GET['redirect'] !== false)) {
wp_safe_redirect(home_url("wp-login.php?$new_login&redirect=false"));
exit();
}
}
add_action('init', 'redirect_to_actual_login');

No estoy seguro de por qué nadie está usando la forma estándar de WordPress para hacer esto.
add_filter( 'login_url', 'my_login_page', 10, 3 );
function my_login_page( $login_url, $redirect, $force_reauth ) {
return home_url( '/my-login-page/?redirect_to=' . $redirect );
}
El siguiente ejemplo devolvería una URL de inicio de sesión http://example.com/my-login-page/ para la función wp_login_url():
copiado de los ejemplos de: https://developer.wordpress.org/reference/hooks/login_url/

Por favor, agrega algunos comentarios a esto. Es una mala práctica no dar alguna explicación a las respuestas.

Esto puede ser posible creando un archivo completamente nuevo similar a tu archivo wp-login.php existente. Los pasos a seguir son:
Sugerencia: Haz una copia de seguridad del archivo wp-admin.php antes de seguir las siguientes instrucciones.
- Abre la ubicación de tu instalación de WordPress, si está en la raíz busca el archivo llamado wp-login.php
- Ahora, crea un nuevo archivo PHP y nómbralo como tu nueva URL de inicio de sesión, es decir, si quieres que tu URL de inicio de sesión sea www.tusitio.com/soygaurav en lugar de www.tusitio.com/wp-admin, entonces crea el nuevo archivo llamado: soygaurav.php
- Copia todo el código del archivo wp-login.php existente y pégalo en tu nuevo archivo soygaurav.php
- Cambia todas las instancias existentes de wp-login por soygaurav (fácilmente mediante la opción de reemplazo masivo en cualquier editor)
- Ahora guarda este archivo y elimina el archivo wp-login.php original de la raíz.
Has terminado. Limpia tu caché y verifica el inicio de sesión con la nueva URL: www.tusitio.com/soygaurav
Obtendrás un error 404 en caso de que alguien intente iniciar sesión en www.tusitio.com/wp-admin
Espero que esto ayude.
Gracias
