¿Puedo cambiar el nombre de la carpeta wp-admin?

68

¿Es posible cambiar el nombre de la carpeta wp-admin?

Sé que solo podría cambiarle el nombre, pero a menos que sea compatible con el código, se romperían muchas cosas.

Si uso un nombre de carpeta personalizado, lo hará un poco más seguro, seguridad por oscuridad y todo eso.

    
pregunta Adam Dempsey 11.08.2010 - 23:35

10 respuestas

37

Lamentablemente, actualmente no es posible ni parece que haya una voluntad de considerarlo como una modificación, como puede ver en este tema reciente en la lista de wp-hackers y este boleto en trac .

Si realmente desea ver esto, vuelva a visitarlo, yo sugeriría:

  1. Presente su caso en wp-hackers pero tenga en cuenta su caso de uso. bueno y no "seguridad a través de la oscuridad" o se derribará como se indica arriba.

  2. Presente su argumento en un boleto de trac con las mismas advertencias.

  3. Aún mejor, suba un parche a trac que permita Su funcionalidad deseada. Es mucho más difícil decir que no cuando el trabajo ya se ha hecho (pero, por supuesto, tienen una preferencia por decir "no" con mucha más frecuencia de lo que dicen "sí", por lo que debe estar prevenido).

respondido por el MikeSchinkel 12.08.2010 - 00:19
11

La gente sigue haciendo esta pregunta, pero la gente sigue marcándola como un duplicado. Sin embargo, la respuesta elegida para esto realmente no es una respuesta a la pregunta.

Para cambiar el nombre del administrador de wordpress, debes seguir dos pasos.

En el siguiente código, estoy usando el panel de control como el nombre de mi nuevo administrador de wp. Cambie el panel de control en el código de abajo a lo que quiera para nombrar a su nuevo administrador.

Primero debe decirle a wordpress que desea cambiar la URL del administrador.

En la línea 2558 wp-includes / link.php / a> es el código que dertermines 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 hacer una prueba 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 se da cuenta al hacer clic en el administrador, notará que no todo funciona y que algunos de los enlaces pueden proporcionarle 404 que no se encuentran o algo similar.

Segundo, cambie el .htaccess en su directorio raíz de wordpress y agregue lo siguiente al principio antes que nada.

#CUSTOM ADMIN URL REWRITE
<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>
#CUSTOM ADMIN URL REWRITE

Ahora, no soy un experto en la edición de .htaccess, por lo que parte de esto podría no ser necesario. Sin embargo, nunca he encontrado que no funcione.

Aquí está todo el asunto. Cree un archivo y suéltelo en la carpeta de complementos o en la carpeta de complementos de mu. (recuerde cambiar cada instancia del panel de control a su url de administrador preferido)

<?php
/**
 * Plugin Name: Change My Admin URL
 * Plugin URI: http://wordpress.stackexchange.com/questions/106/can-i-rename-the-wp-admin-folder
 * Description: Changes the admin url where wp-admin becomes dashboard (or whatever you change it to)
 * Version: 1.0
 * Author: Bryan Willis
 * Author URI: http://profiles.wordpress.org/codecandid
 * License: GPL2
 */

/* 

#CUSTOM ADMIN URL REWRITE FOR 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>
#CUSTOM ADMIN URL REWRITE

*/

function my_custom_admin_url($path) { 
    return str_replace('wp-admin', 'dashboard', $path); 
}
add_filter('admin_url', 'my_custom_admin_url');

Issues?

No he tenido ninguno en más de un año usando este método. Puede notar que wp-admin todavía funcionará qué tipo de succión, pero es más una precaución que otra cosa. Tuve algunos complementos mal escritos que codificaban wp-admin en algunos lugares que no se cargarían al intentar bloquear o redirigir wp-admin. Estoy seguro de que hay una manera de hacer esto con el htaccess, pero no lo he descubierto con éxito. Además, esto no ha sido probado en multisitio o algo así nunca.

Actualización: Enfoque alternativo

Esto es bastante similar, pero por alguna razón, mi respuesta anterior no funcionó en todos los hosts que probé.

Añadir a .htaccess

RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]

Crea un archivo en la carpeta de los complementos de mu 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 parecía funcionar mejor en algunos hosts, pero aún tenía el problema de no redirigir los enlaces wp-admin a la nueva URL de administración. Aquí hay un enfoque que probé a continuación. Si bien esto no funciona creo que va por el buen camino. No estoy totalmente seguro de qué gancho utilizar. htaccess podría ser una mejor alternativa, pero seguí 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' );
    }
  }
}
    
respondido por el Bryan Willis 07.06.2014 - 15:56
10

No, no puedes cambiar el nombre de la carpeta. La ruta está codificada en varias ubicaciones a lo largo de la fuente de WordPress.

La seguridad a través de la oscuridad no es realmente seguridad de todos modos.

    
respondido por el Viper007Bond 11.08.2010 - 23:40
9

Un enfoque que es oficialmente compatible con WordPress es mover los archivos de instalación de WordPress a un subdirectorio, manteniendo el sitio en la raíz, como por ejemplo:

URL del sitio: http://my-blog.com

URL del administrador: http://my-blog.com/7nxnkkugrdzm/wp-admin

Si bien esto no le da total libertad para cambiar la URL de su administrador, significa que puede prefix con cualquier cosa que desee. Esto es tan bueno desde el punto de vista de la seguridad. También tiene la ventaja de mover todos los archivos de instalación de WordPress a una ubicación desconocida para los usuarios, por lo que debe ser parte de cualquier estrategia de fortalecimiento de WordPress.

Del Códice de WordPress: Dando a WordPress su propio directorio

Además, tenga en cuenta que si bien este esquema de seguridad se denomina URL oscura , no es lo mismo que security by obscurity . La URL oculta es un esquema de seguridad perfectamente válido que es tan bueno como una contraseña, mientras que seguridad por oscuridad se basa en el uso de procedimientos secretos no comprobados.

Se aplican las mismas advertencias que con las contraseñas: llame a la carpeta personalizada algo como 7nxnkkugrdzm , no happy-snappy-admin . Además, asegúrese de que sus usuarios estén conscientes de que la URL del administrador es un secreto.

    
respondido por el cmc 13.03.2013 - 15:47
7

En realidad hay un muy buen tutorial sobre esto aquí:

  

Cómo ocultar información de WordPress de su código fuente espejo

     

Incluye cómo cambiar el nombre de wp-content, cambiar el nombre de wp-admin y eliminar la etiqueta del generador de WordPress.

     

Este tutorial cambiará pruebas obvias o indicaciones de ello en su código fuente, eliminando efectivamente la información de WordPress de su sitio .

Explica cómo cambiar el nombre de la carpeta, la URL de inicio de sesión de wp-admin y asegurarse de que login.php redirige al sitio principal para que la gente pueda ir allí directamente.

    
respondido por el Graeme 09.01.2011 - 19:09
6

Si desea evitar que los usuarios de nivel de suscriptor vean el directorio wp-admin, puede crear versiones independientes de inicio de sesión / registro y perfil / editar páginas en sus propios directorios. Luego, puede proteger su carpeta de administración a través de htaccess o restricción de IP. (Aunque si haces esto, deberías hacer una excepción para el archivo admin-ajax, ya que algunos complementos lo usan para agregar, um, la funcionalidad AJAX).

Este enfoque le brinda la "oscuridad" que desea (que en realidad no hace mucho, pero a menudo hace que los clientes y gerentes se sientan mejor), y también agrega cierta seguridad real al limitar el acceso al administrador. Además, honestamente, una URL que dice "/ login" se ve mucho mejor que "wp-login.php".

No hace falta decir que esto no hace que su sitio sea a prueba de balas. Pero es una mejora bonita y básica.

    
respondido por el MathSmath 15.11.2010 - 08:11
2

Una forma de bloquear el panel de control administrativo es utilizar las reglas .htaccess. Simplemente agregue un archivo .htaccess a la raíz del directorio wp-admin. Después de agregar este archivo, solo agregue la siguiente regla para denegar todas las direcciones IP y permitir solo su IP:

enlace

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
whitelist address
allow from <IP ADDRESS HERE>
</LIMIT>
    
respondido por el Josh 07.12.2011 - 15:10
1

Si desea cambiar el nombre de wp-admin con el objetivo de agregar una capa de seguridad adicional a su instalación de WordPress, también puede probar el Plantilla de WordPress de Roots / Bedrock . Puede ayudar a aislar la raíz web para limitar el acceso a archivos que no son web. También puede ayudar a organizar / asegurar todo el núcleo de WordPress al colocarlo en su propio subdirectorio, como cambiar el nombre de wp-content / a app /, así como estas características adicionales:

  • Gestión de dependencias con Composer
  • Configuración sencilla de WordPress con archivos específicos del entorno
  • Variables de entorno con Dotenv
  • Autoloader for mu-plugins (use complementos regulares como mu-plugins)
  • Seguridad mejorada (raíz web separada y contraseñas seguras con wp-password-bcrypt)

También puede consultar su GitHub Repo para un uso más detallado:

    
respondido por el Carl Alberto 16.05.2016 - 05:22
0

Echa un vistazo a enlace esto puede ayudarte.

    
respondido por el edelwater 14.11.2010 - 22:09
0

No, no es posible cambiar el nombre de la carpeta wp-admin con ningún código o hackeo htaccess,

En el pasado, hice lo mismo para un cliente al realizar una búsqueda completa de carpetas a través de Coda (el editor que uso) para la etiqueta "wp-admin, wp-content ... etc" y elimino "wp- "de los archivos.

Después de eso podrás instalarlo pero:
Tienes que hacer lo mismo con los complementos que quieres instalar, Debe actualizar el Core manualmente borrando la etiqueta "wp-" de las nuevas versiones.

En todas las formas en que no te sugiero que hagas algo como esto, déjelo como está e intente implementar una página de inicio de sesión / registro / perfil de usuario para brindar a sus usuarios / clientes una mejor experiencia.

  

Cristian de Cozmolabs tener   escribe un muy buen tutorial. Usted puede   edita el código un poco y haz que se ejecute en   cualquier tema de WordPress.

También puede agregar un formulario de publicación desde la interfaz para que el administrador y los usuarios con capacidad para escribir una publicación puedan hacerlo desde la interfaz.

  

Aquí puedes ver un ejemplo y un código   sobre cómo crear una página de Frontend Post.    Envío de publicaciones de front-end

También puedes echar un vistazo a algunos complementos aquí que hacen lo mismo con más funcionalidad.

    
respondido por el Philip 10.01.2011 - 10:56

Lea otras preguntas en las etiquetas