¿Puedo renombrar la carpeta wp-admin?
¿Es posible renombrar la carpeta wp-admin?
Sé que podría simplemente renombrarla, pero a menos que esté soportado por el código, muchas cosas se romperían.
Si uso un nombre de carpeta personalizado, hará que sea un poco más seguro, siguiendo el principio de seguridad por oscuridad.
Lamentablemente, actualmente no es posible ni parece haber voluntad de considerarlo como una modificación, como puedes ver en este hilo reciente en la lista de wp-hackers y en este ticket en trac.
Si realmente te gustaría que esto se reconsiderara, te sugiero:
Presenta tu caso en wp-hackers, pero ten en cuenta que tu caso de uso debe ser realmente bueno y no basarse en "seguridad por oscuridad", o será rechazado como en los ejemplos anteriores.
Presenta tu argumento en un ticket de trac con las mismas advertencias.
Incluso mejor, sube un parche a trac que habilite la funcionalidad que deseas. Es mucho más difícil decir que no cuando el trabajo ya está hecho (pero, por supuesto, tienen preferencia por decir "no" mucho más a menudo que "sí", así que tenlo en cuenta).

+1
tienen una preferencia por decir "no" mucho más a menudo que decir "sí", así que tenlo en cuenta :)

Considerando que esta es la respuesta aceptada a una pregunta que muchos tenemos, incluso siendo un principiante en WordPress, me gustaría añadir que parece que existen plugins que permiten renombrar wp-admin y wp-login.php...

los plugins no renombran wp-login.php
, sino que crean páginas de login completamente nuevas y hacen que WP las use mediante filtros, el archivo wp-login.php
sigue presente. No hay plugins para mover wp-admin
ya que está codificado en prácticamente todas partes, aunque los accesos directos que redirigen allí son comunes y algunos incluso están incluidos en el núcleo ( /admin
y /login
)

La gente sigue haciendo esta pregunta, pero la marcan como duplicada. Sin embargo, la respuesta elegida realmente no responde a la pregunta.
Para renombrar el administrador de WordPress necesitas seguir dos pasos.
En el siguiente código estoy usando "dashboard" como nombre para mi nuevo wp-admin. Cambia "dashboard" en el código por el nombre que quieras darle a tu nuevo administrador.
Primero, debes indicarle a WordPress que quieres cambiar la URL del administrador.
En la línea 2558 de wp-includes/link-template.php está el código que determina la URL del administrador.
Usando el filtro admin_url
puedes cambiar exitosamente la URL del administrador con la siguiente función:
function my_custom_admin_url($path) {
return str_replace('wp-admin', 'dashboard', $path);
}
add_filter('admin_url', 'my_custom_admin_url');
Puedes probar para ver cuál es tu nueva URL haciendo esto:
function whats_my_admin_url() {
$url = admin_url();
echo '<pre><code>'; print_r( $url ); echo '</code></pre>';
}
add_action( 'admin_notices', 'whats_my_admin_url' );
Sin embargo, si navegas por el administrador notarás que no todo funciona y algunos enlaces pueden darte error 404 o similar.
Segundo, modifica el archivo .htaccess en el directorio raíz de WordPress y agrega lo siguiente al principio, antes que cualquier otra cosa.
#REESCRITURA DE URL PERSONALIZADA PARA ADMIN
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#REESCRITURA DE URL PERSONALIZADA PARA ADMIN
No soy un experto editando .htaccess, así que algo de esto podría no ser necesario. Sin embargo, nunca he visto que no funcione.
Aquí está todo el código completo. Crea un archivo y colócalo en tu carpeta de plugins o mu-plugins. (recuerda cambiar todas las instancias de "dashboard" por tu URL de administrador preferida)
<?php
/**
* Plugin Name: Cambiar URL de Administrador
* Plugin URI: http://wordpress.stackexchange.com/questions/106/can-i-rename-the-wp-admin-folder
* Description: Cambia la URL del administrador donde wp-admin se convierte en dashboard (o lo que quieras cambiarlo)
* Version: 1.0
* Author: Bryan Willis
* Author URI: http://profiles.wordpress.org/codecandid
* License: GPL2
*/
/*
#REESCRITURA DE URL PERSONALIZADA PARA HTACCESS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#REESCRITURA DE URL PERSONALIZADA
*/
function my_custom_admin_url($path) {
return str_replace('wp-admin', 'dashboard', $path);
}
add_filter('admin_url', 'my_custom_admin_url');
¿Problemas?
No he tenido ninguno en más de un año usando este método. Puedes notar que wp-admin seguirá funcionando, lo cual es molesto, pero es más una precaución que otra cosa. Tenía algunos plugins mal escritos que codificaban wp-admin directamente en algunos lugares y no cargaban al intentar bloquear o redirigir wp-admin. Estoy seguro de que hay una forma de hacer esto con el htaccess, pero no he logrado resolverlo. Además, esto no ha sido probado en multisitio ni nada similar.
Actualización: Enfoque Alternativo
Esto es bastante similar, pero por alguna razón mi respuesta anterior no funcionó en todos los hosts que probé.
Agrega a .htaccess
RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]
Crea un archivo en la carpeta mu-plugins llamado new-admin.php
y agrega esto allí:
<?php
define('WP_ADMIN_DIR', 'admin');
defined('SITECOOKIEPATH') || define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) );
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);
add_filter('site_url', 'wpadmin_filter', 10, 3);
function wpadmin_filter( $url, $path, $orig_scheme ) {
$old = array( "/(wp-admin)/");
$admin_dir = WP_ADMIN_DIR;
$new = array($admin_dir);
return preg_replace( $old, $new, $url, 1);
}
Nota: Este enfoque pareció funcionar mejor en algunos hosts, pero seguía teniendo el problema de no redirigir los enlaces de wp-admin a la nueva URL de administrador. Aquí hay un enfoque que probé a continuación. Aunque esto no funciona, creo que va por buen camino. No estoy totalmente seguro de qué hook usar. htaccess podría ser una mejor alternativa, pero seguía obteniendo bucles de redirección cuando lo intenté de esa manera.
add_action('init', 'redirect_wp_admin_url_to_404');
function redirect_wp_admin_url_to_404(){
$redirect_to = $_SERVER['REQUEST_URI'];
if(count($_REQUEST) > 0 && array_key_exists('redirect_to', $_REQUEST)){
$redirect_to = $_REQUEST['redirect_to'];
$check_wp_admin = stristr($redirect_to, 'wp-admin');
if($check_wp_admin){
wp_safe_redirect( '404.php' );
}
}
}

Hay un enfoque similar escrito en una clase aquí: http://wordpress.stackexchange.com/a/7832/76440

¡Me alegra que hayas señalado esa respuesta @makick! Es una gran respuesta y en realidad fue de donde obtuve algunas ideas, pero parecía no funcionar para mí en muchos casos, razón por la cual surgieron mis modificaciones. Lo que aún estoy intentando resolver es cómo redirigir todos los enlaces de wp-admin que se escriben manualmente en la URL. No logro resolver eso. Si tienes la oportunidad, prueba mi respuesta actualizada hacia el final usando el filtro site_url
en lugar de admin_url
. Parece funcionar bastante bien.

Y es una excusa perezosa en el mejor de los casos para no cambiar malas prácticas de programación como codificar números o cadenas mágicas directamente.

@hakre +100
Por cierto, la mayoría de las personas que preguntan cómo ocultar carpetas "wp-*" no buscan necesariamente seguridad, en realidad buscan oscurecimiento... intentan que analizar sus sitios sea una actividad que requiera más esfuerzo.

En realidad, no es seguridad por oscurecimiento. Es URL oscura, una técnica de seguridad válida. Consulta la respuesta a continuación para más detalles.

Bueno, intenté seguir con un nuevo conjunto de argumentos, pero la respuesta fue: "Esto es un fuerte wontfix en mi libro" y el bastante engreído "el login de gmail tampoco es una URL oscura". Sin razones técnicas, sin explicación, sin debate, simplemente no lo harán.

Wordpress es mucho más venerable que Gmail. Una razón es que Wordpress es de código abierto. Todo el mundo conoce el código. ¿La seguridad a través de la oscuridad no es realmente seguridad de todos modos? Pero no somos codificadores de Wordpress. Es de código abierto. En mi opinión, la oscuridad sí ayuda a hacerlo seguro. ¿Por qué la gente usa contraseñas encriptadas entonces? Según esta lógica, no hay uso para encriptar contraseñas... Porque si la base de datos es visible, los hackers pueden hacer cualquier cosa... Mi Wordpress ha sido hackeado 2 veces y 2 veces el Wordpress de mi compañía en 10 años... Y ninguna de mis 6-7 cuentas de Gmail ha sido hackeada en 15 años hasta ahora...

Lo que se está pidiendo no es "seguridad a través de la oscuridad" – es seguridad Y oscuridad. Incluso un banco con la mejor caja fuerte del mundo no la haría directamente accesible desde la calle. Cambiar el nombre del directorio hace que los ataques automatizados sean mucho más difíciles.

Un enfoque oficialmente compatible con WordPress es mover los archivos de instalación de WordPress a un subdirectorio, manteniendo el sitio en la raíz, de la siguiente manera:
URL del sitio: http://my-blog.com
URL de administración: http://my-blog.com/7nxnkkugrdzm/wp-admin
Aunque esto no te brinda libertad completa para cambiar tu URL de administración, significa que puedes prefijarla con lo que prefieras. Esto es igual de válido desde el punto de vista de la seguridad. También tiene el beneficio de mover todos los archivos de instalación de WordPress a una ubicación desconocida para los usuarios, por lo que debería ser parte de cualquier estrategia de endurecimiento de WordPress.
Del Codex de WordPress: Darle a WordPress su propio directorio
Además, ten en cuenta que aunque este esquema de seguridad se llama URL oscura, no es lo mismo que seguridad por oscuridad. URL oscura es un esquema de seguridad completamente válido que es tan bueno como una contraseña, mientras que seguridad por oscuridad se basa en procedimientos secretos no probados.
Sin embargo, aplican las mismas precauciones que con las contraseñas: llama a la carpeta personalizada algo como 7nxnkkugrdzm
, no como happy-snappy-admin
. Además, asegúrate de que tus usuarios estén al tanto de que la URL de administración es un secreto.

De hecho, hay un muy buen tutorial sobre esto aquí:
Cómo ocultar la información de WordPress de tu código fuente espejo
Incluye cómo renombrar wp-content, renombrar wp-admin y eliminar la etiqueta generadora de WordPress.
Este tutorial cambiará las evidencias o indicaciones obvias en tu código fuente, eliminando efectivamente la información de WordPress de tu sitio.
Explica cómo cambiar el nombre de la carpeta, la URL de acceso a wp-admin y asegurarse de que login.php redirija al sitio principal para que las personas puedan acceder allí directamente.

Si deseas evitar que los usuarios de nivel suscriptor vean el directorio wp-admin, puedes crear versiones independientes de las páginas de inicio de sesión/registro y perfil/edición en sus propios directorios. Luego, puedes proteger tu carpeta de administración mediante htaccess o restricción por IP. (Aunque si haces esto, deberías hacer una excepción para el archivo admin-ajax, ya que algunos plugins lo utilizan para agregar, ejem, funcionalidad AJAX).
Este enfoque te brinda la "oscuridad" que deseas (que en realidad no hace mucho, pero a menudo hace sentir mejor a los clientes y gerentes), y también agrega algo de seguridad real al limitar el acceso al administrador. Además, sinceramente, una URL que simplemente dice "/login" se ve mucho mejor que "wp-login.php".
Debería ser obvio que esto no hace que tu sitio sea a prueba de balas. Pero es una mejora básica y agradable.

Una forma de asegurar el panel de control administrativo es utilizar reglas de .htaccess. Solo añade un archivo .htaccess en la raíz del directorio wp-admin. Después de agregar este archivo, simplemente añade la siguiente regla para denegar todas las direcciones IP y permitir solo tu IP:
http://wp.tutsplus.com/tutorials/10-steps-to-securing-your-wordpress-installation/
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Control de Acceso al Administrador de WordPress"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
whitelist address
allow from <DIRECCIÓN IP AQUÍ>
</LIMIT>

Si deseas renombrar wp-admin con el objetivo de agregar una capa adicional de seguridad a tu instalación de WordPress, también puedes probar el Roots / Bedrock WordPress Boilerplate. Puede ayudar a aislar la raíz web para limitar el acceso a archivos no web. También puede ayudar a organizar/asegurar todo el núcleo de WordPress colocándolo en su propio subdirectorio, como renombrar wp-content/ a app/, así como estas características adicionales:
- Gestión de dependencias con Composer
- Configuración fácil de WordPress con archivos específicos del entorno
- Variables de entorno con Dotenv
- Autoloader para mu-plugins (usa plugins regulares como mu-plugins)
- Seguridad mejorada (raíz web separada y contraseñas seguras con wp-password-bcrypt)
También puedes consultar su Repositorio en GitHub para un uso más detallado:

Echa un vistazo a http://wordpress.org/extend/plugins/stealth-login/, esto podría ayudarte.

Tuve problemas con ese plugin cuando lo probé. Y actualmente no parece estar mantenido o ser compatible con WP 3.x

ah... qué mal, no lo verifiqué, lo desinstalé hace algún tiempo. Pero oye... tal vez alguien pueda arreglarlo si realmente lo necesita.

como alternativa, por favor mira http://wordpress.stackexchange.com/questions/4037/how-to-redirect-rewrite-all-wp-login-requests

No, no es posible renombrar la carpeta wp-admin con ningún tipo de código o truco de htaccess,
En el pasado hice lo mismo para un cliente realizando una búsqueda completa de carpetas a través de Coda (el editor que uso) para la etiqueta "wp-admin, wp-content...etc" y eliminé el "wp-" de los archivos.
Después de eso podrás instalarlo pero:
Tendrás que hacer lo mismo con los plugins que quieras instalar,
Tendrás que actualizar el núcleo manualmente eliminando la etiqueta "wp-" de las nuevas versiones.
En cualquier caso, no te sugiero que hagas algo así, déjalo como está e intenta implementar una página de Inicio de Sesión/Registro/Perfil de Usuario para dar a tus usuarios/clientes una mejor experiencia.
Cristian de Cozmolabs ha escrito un muy buen tutorial. Puedes editar un poco el código y hacer que funcione en cualquier tema de WordPress.
También puedes añadir un formulario de publicación desde el frontend para que el Administrador y los Usuarios con las Capacidades para escribir una publicación puedan hacerlo desde el frontend.
Aquí puedes ver un ejemplo y código sobre cómo crear una página de Publicación en el Frontend. Envío de Publicaciones desde el Frontend
También puedes echar un vistazo a algunos plugins aquí que hacen lo mismo con más funcionalidad.

¿QUÉ TAL TRABAJAR CON WP-ADMIN DESDE UN IFRAME?
Crea una nueva página en el panel de WordPress llamada "Admin". Ejemplo: tudominio.com/admin/
Puedes usar una declaración condicional en los archivos header.php
, page.php
y/o footer.php
para deshabilitar elementos no necesarios en la plantilla, utilizando:
<?php
if(!is_page('admin')): //si no es la página de administración.
//envuelve el código que no necesitas o quieres ocultar.
else: ?>
<style type="text/css">
.responsive-iframe {
position: relative;
padding-bottom: 56.25%; /*16:9*/
height: 0;
overflow: hidden;
iframe {
position: absolute;
top:0;
left: 0;
width: 100%; //o 100vw
height: 100%; //o 100vh
}
}
</style>
<div class="responsive-iframe">
<iframe seamless="seamless" scrolling="yes" src="http://tudominio.com/wp-admin/" frameborder="0" allowfullscreen></iframe>
</div>
<?php
endif;
Esto no es lo más elegante, pero al menos en cierta medida puedes ocultar wp-admin de la URL. Otra opción es usar redireccionamiento de dominio con enmascaramiento de URL habilitado.

Yo mismo elimino el archivo wp-login.php, y lo subo por FTP antes de iniciar sesión, y lo elimino nuevamente después hasta la próxima vez Pero de lo contrario diría:
- El plugin Wordfence ayuda mucho a bloquear intentos de hackers humanos. Usa un nombre de usuario para la cuenta de administrador muy largo y complejo (los hackers y bots no asumen que los humanos usen nombres de usuario largos, solo contraseñas), uno que ni tú puedas recordar, e inicia sesión usando la dirección de correo electrónico que usaste en su lugar, también es un truco excelente.
- Borra el contenido del archivo comments.php, y nunca permitas comentarios en tu sitio web, ni registros, es lo mejor, restringiendo el acceso solo a administradores y tal vez si necesitas a tus autores y editores. Eliminar el contenido de comments.php previene muchos malware inyectados y hacks.
- Pon un espacio entre dos palabras como tu nombre de usuario, ya que la mayoría de hackers no se dan cuenta de que puedes usar un nombre de usuario con un espacio vacío, y a menudo usan guiones bajos incluso cuando adivinan tu nombre de usuario (hackers humanos usando ingeniería social). Se ha demostrado que contraseñas largas y complejas no son más seguras que una contraseña de 8 caracteres/números, así que eso es para que lo estudies.
- Por último pero no menos importante, no solo hay que proteger login.php (por cierto, nunca uses el nombre de usuario "[login]"), sino también el archivo xml rpc que es el otro archivo que les gusta usar a los hackers para intentar iniciar sesión. Usualmente este tipo de ataque es de un hacker de bajo nivel con poco conocimiento de hacking real usando IA para hacer el trabajo, y simplemente está probando suerte. Pero más vale prevenir que lamentar. Además, el plugin WP All in One Migration te permite descargar todo el sitio con la base de datos y configuración y subirlo de nuevo en caso de ser hackeado y borrado del sitio. Una copia de seguridad diaria antes de dormir aseguraría que tu sitio siempre esté como estaba antes de acostarte. Haz copias de seguridad fuera de línea en un disco duro (externo), y siempre estarás seguro. Ah, y mantén los plugins al mínimo, ya que a menudo los desarrolladores los abandonan y no los actualizan, y si tu blog ha usado el plugin (por ejemplo, plugins de listas de reproducción de YouTube) para publicar, eliminar un plugin obsoleto hará que muchas publicaciones pierdan sentido con contenido faltante (siempre piensa en el futuro). Pero sí usa los plugins necesarios como Akismet, Wordfence gratuito, y WP All in One Migration para hacer copias de seguridad de archivos, contenido y base de datos del sitio. Muchos plugins también tienen vulnerabilidades y un rápido escaneo de tu servidor mostrará todas las carpetas al hacker, y sabrá que tienes el plugin y atacará a través de él. Tampoco uses Disqus u otros formularios de comentarios de terceros, ya que hay más datos siendo robados y comprometidos a través de incepción de cuarta parte (YouTube actualmente hackeado usando etiquetas de ubicación en apps), de lo que es útil. Mejor ten una página de Facebook y deja que la gente comente allí, pero no insertes widgets, o código que enlace desde o hacia otros dominios, y sus APIs demasiado, ya que los datos comunicados y compartidos son interceptados fácilmente por hackers profesionales. No tengo botones de comentarios o compartir en mis sitios WordPress por esto. (aún me va bien y vivo bien sin necesidad de comentarios con mi tipo de sitios web). Por ejemplo, si esta pregunta fuera en forma de video de YouTube, todos habrían dejado WordPress en StackExchange (¡no que sugiera eso ya que StackExchange es fantástico!) y comentarían en su canal de YouTube en su lugar. Más seguro. Así que haz un canal de YouTube y una página de FB y úsalos para que la gente "se registre y comente" y mantén el sitio WordPress lo más básico posible sin opciones de inicio de sesión.
