Cambiar URL de inicio de sesión sin plugin

4 sept 2014, 00:24:13
Vistas: 47.7K
Votos: 6

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?

4
Comentarios

Creo que es mucho mejor si creas una página de inicio de sesión personalizada.

cybmeta cybmeta
4 sept 2014 00:27:38

Crear una página de inicio de sesión personalizada no te da la opción de cambiar la URL. Solo te permite modificar el aspecto y ciertos parámetros.

Travis Patron Travis Patron
4 sept 2014 02:02:38

Bueno, eso no es del todo cierto. Aún tienes que enviar los datos del formulario de inicio de sesión a wp-login.php, y la URL directa de wp-login.php sigue estando disponible (también con RewriteRule de .htaccess), pero puedes usar la URL que quieras para la página de inicio de sesión. Solo configúrala cuando crees la página como lo haces con cualquier otra página en WordPress. Quizás no has leído completamente el enlace que publiqué. No estoy seguro de cuál es tu objetivo, pero una página de inicio de sesión personalizada cumple con el aspecto de URL personalizada, además de que puedes personalizarla completamente.

cybmeta cybmeta
4 sept 2014 09:47:48

No existe ninguna razón o método sensato para hacer esto "sin un plugin", porque el código necesario para realizar esta tarea debería estar contenido dentro de un plugin. No implementes tu propio código, utiliza un plugin probado y confiable que esté diseñado específicamente para esta función. Esa es la forma segura de hacerlo.

Otto Otto
19 mar 2016 11:53:33
Todas las respuestas a la pregunta 5
1

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!

15 ene 2016 10:40:53
Comentarios

no funciona... ya lo intenté.

abhij89 abhij89
29 abr 2021 15:14:25
0

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');
25 jun 2021 02:01:41
0

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/

4 dic 2021 13:20:12
3
-1

Puedes usar este código:

add_action('init','custom_login');

function custom_login(){
 global $pagenow;
 if( 'wp-login.php' == $pagenow && $_GET['action']!="logout") {
  wp_redirect('http://TU-SITIO.com/URL');
  exit();
 }
}
27 ene 2017 22:36:55
Comentarios

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

Phill Healey Phill Healey
2 abr 2018 23:08:00

esto es una redirección, no una nueva URL de inicio de sesión.

Tritof Tritof
23 feb 2019 14:16:14

esta no es la respuesta que se pidió.

Ibnul Hasan Ibnul Hasan
24 ene 2021 19:35:34
2
-2

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

4 jun 2018 19:49:48
Comentarios

No. No. No modifiques ninguno de los archivos principales.

De Coder De Coder
26 ago 2018 12:11:36

Si vas a recomendar cambiar los archivos principales (lo cual no deberías hacer en absoluto), AL MENOS ten la decencia de aclarar los problemas que esta solución conlleva

Raba Raba
20 dic 2019 10:57:10