¿Hay alguna forma de renombrar u ocultar wp-login.php?
¿Existe alguna manera de cambiar la URL de wp-login.php? Parece inseguro que cualquiera que haya usado WordPress pueda fácilmente ver si tu sitio lo está utilizando y acceder directamente a la página de inicio de sesión.
Solía haber un plugin llamado "Stealth login", pero no fue actualizado. (Y de ahí nuestra resistencia a depender de plugins).
Si estás haciendo esto para tu propio sitio, usar .htaccess podría ser la forma más fácil, aunque podría complicarse si quieres que funcione para un plugin, ya que habría muchas diferencias sutiles de configuración para soportar.
Aquí hay algunos artículos que podrían ayudarte; no todos responden directamente tu pregunta pero todos abordan tu preocupación de seguridad de una forma u otra:
- Ocultar la página de acceso WP-Admin de WordPress
- Cómo prevenir ataques en la página wp-login.php de WordPress
- Protege tu WordPress, jugando con tu archivo .htaccess
- Cómo: cambiar de wp-login.php a login
- Cómo proteger wp-login y wp-admin
- Fortalecer WordPress con Mod Rewrite y htaccess
Y por supuesto, no hay mejor experto en Apache y WordPress que el que escribe AskApache. Asegúrate de revisar estos:
Recientemente me encontré con el mismo problema, y tienes razón, el plugin Stealth ya no tiene soporte. Sin embargo, como finalmente me di cuenta de que el plugin Stealth era la mejor opción, hice una instalación limpia de WordPress con la última versión que el plugin Stealth soportaba para entender cómo funcionaba. Resulta que lo único que hace el plugin es crear un archivo .htaccess con algo de magia. El archivo .htaccess se vería algo así:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^logout wp-login.php?action=logout&_wpnonce=asdfasdf&stealth_out_key=asdfasdfasdfasdf [L]
RewriteRule ^login wp-login.php?stealth_in_key=asdfasdfasdf&redirect_to=http://example.com/login [R,L]
RewriteRule ^admin wp-admin/?stealth_admin_key=asdfasdfasdfasdf [R,L]
RewriteCond %{HTTP_REFERER} !^http://example.com/wp-admin
RewriteCond %{HTTP_REFERER} !^http://example.com/wp-login\.php
RewriteCond %{HTTP_REFERER} !^http://example.com/login
RewriteCond %{HTTP_REFERER} !^http://example.com/admin
RewriteCond %{QUERY_STRING} !^stealth_in_key=asdfasdfasdfasdf
RewriteCond %{QUERY_STRING} !^stealth_out_key=asdfasdfasdfasdfasd
RewriteCond %{QUERY_STRING} !^stealth_reg_key=asdfasdfasdfasdfasdf
RewriteCond %{QUERY_STRING} !^stealth_admin_key=asdfasdfasdfasdfasdf
RewriteRule ^wp-login\.php http://example.com [R,L]
RewriteCond %{QUERY_STRING} ^loggedout=true
RewriteRule ^wp-login\.php http://example.com [R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
He cambiado todas las claves por variaciones de "asdfasdfasdf" — obviamente tendrías que crear tus propias claves secretas.
¡Espero que esto ayude!
Esto es lo que hice:
Simplemente renombré el directorio wp-admin a un nombre oscuro como pfgkn, por ejemplo.
Al intentar acceder a http://tudominio.com/wp-admin/ te redirigirá a tu página de inicio en http://tudominio.com/ o a lo que tengas configurado para las páginas 404 no encontradas.
Cuando necesito iniciar sesión, solo renombro el directorio pfgkn a wp-admin, realizo mis cambios y luego lo vuelvo a renombrar a pfgkn.