Puis-je renommer le dossier wp-admin?

68

Est-il possible de renommer le dossier wp-admin?

Je sais que je pourrais juste le renommer, mais à moins que cela ne soit supporté par le code, beaucoup de choses se briseraient.

Si j'utilise un nom de dossier personnalisé, cela le rendra un peu plus sécurisé, sécurité par obscurité et tout ça.

    
posée Adam Dempsey 11.08.2010 - 23:35
la source

10 réponses

37

Malheureusement, cela n’est actuellement ni possible ni envisageable de la considérer comme une modification, comme vous pouvez le constater fil de discussion récent sur la liste wp-hackers et ce ticket sur trac .

Si vous souhaitez vraiment que cela soit revisité, je suggérerais:

  1. Présentez votre cas sur wp-hackers , mais soyez prévenu que votre cas d'utilisation vaut mieux être bon et pas "sécurité par l'obscurité" ou il sera abattu comme ci-dessus.

  2. Présentez votre argument dans un ticket de suivi avec les mêmes réserves.

  3. Encore mieux, téléchargez un correctif sur trac qui permet votre fonctionnalité désirée. Il est beaucoup plus difficile de dire non quand le travail est déjà fait (mais bien sûr, ils préfèrent dire "non" beaucoup plus souvent qu'ils ne disent "oui", alors soyez prévenus.)

réponse donnée MikeSchinkel 12.08.2010 - 00:19
la source
11

Les gens continuent à poser cette question, mais ils continuent à le marquer comme un doublon. Cependant, la réponse choisie n’est pas vraiment une réponse à la question.

Pour renommer l'administrateur wordpress, vous devez suivre deux étapes.

Dans le code suivant, j'utilise tableau de bord comme nom de mon nouveau compte wp-admin. Remplacez le tableau de bord dans le code ci-dessous par le nom de votre nouvel administrateur.

Tout d'abord, vous devez dire à wordpress que vous souhaitez modifier l'URL de l'administrateur.

À la ligne 2558, wp-includes / link-template.php est le code qui détermine l’URL de l’administrateur.

En utilisant le filtre admin_url , vous pouvez modifier avec succès l'url de l'administrateur avec la fonction suivante:

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

Vous pouvez tester pour voir quelle est votre nouvelle URL en procédant ainsi:

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' );

Cependant, si vous remarquez en cliquant sur l’administrateur que tout ne fonctionne pas et que certains des liens peuvent vous donner 404 pages introuvables ou quelque chose de similaire.

Deuxièmement, modifiez .htaccess dans le répertoire racine de votre wordpress et ajoutez les éléments suivants au début, avant toute chose.

#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

Maintenant, comme je ne suis pas un expert en matière de modification de .htaccess, certaines de ces choses pourraient ne pas être nécessaires. Cependant, je n'ai jamais trouvé que cela ne fonctionnait pas.

Voici le tout. Créez un fichier et déposez-le dans votre dossier plugins ou mu-plugins. (n'oubliez pas de changer chaque instance du tableau de bord en votre URL d'administrateur préférée)

<?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');

Des problèmes?

Je n’en ai pas eu depuis plus d’un an avec cette méthode. Vous remarquerez peut-être que wp-admin fonctionnera toujours quel genre de merde, mais c'est plus une précaution que tout. J'avais des plugins mal écrits qui wp-admin codés en dur à certains endroits et qui ne se chargeaient pas en essayant de bloquer ou de rediriger wp-admin. Je suis sûr qu'il y a un moyen de faire cela avec le htaccess, mais je ne l'ai pas compris avec succès. En outre, cela n'a pas été testé sur multisite ou quoi que ce soit du genre.

Mise à jour: approche alternative

Ceci est assez similaire, mais pour une raison quelconque, ma réponse ci-dessus ne fonctionne pas sur tous les hôtes que j'ai essayés.

Ajouter à .htaccess

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

Créez un fichier dans le dossier mu-plugins appelé new-admin.php et ajoutez-le ici:

<?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);
}

Remarque: Cette approche a semblé mieux fonctionner sur certains hôtes, mais le problème était de ne pas rediriger les liens wp-admin vers la nouvelle URL d'administrateur. Voici une approche que j'ai essayée ci-dessous. Bien que ceci ne fonctionne pas ci-dessous , je pense que c'est sur la bonne voie. Je ne sais pas trop quel crochet utiliser. htaccess pourrait être une meilleure alternative, mais je continuais à avoir des boucles de redirection lorsque j'essayais de cette façon.

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' );
    }
  }
}
    
réponse donnée Bryan Willis 07.06.2014 - 15:56
la source
10

Non, vous ne pouvez pas renommer le dossier. Le chemin est codé en dur à plusieurs endroits dans la source de WordPress.

De toute façon, la sécurité par l'obscurité n'est pas vraiment une sécurité.

    
réponse donnée Viper007Bond 11.08.2010 - 23:40
la source
9

Une approche officiellement prise en charge par WordPress consiste à déplacer les fichiers d'installation de WordPress dans un sous-répertoire, tout en conservant le site à la racine, comme suit:

URL du site: http://my-blog.com

URL de l'administrateur: http://my-blog.com/7nxnkkugrdzm/wp-admin

Bien que cela ne vous donne pas une totale liberté pour modifier votre URL d'administrateur, cela signifie que vous pouvez le le préfixer avec tout ce que vous voulez. C’est aussi bien du point de vue de la sécurité. Il présente également l'avantage de déplacer tous les fichiers d'installation de WordPress vers un emplacement inconnu des utilisateurs. Il devrait donc faire partie de toute stratégie de renforcement de Wordpress.

Du codex WordPress: Donner à WordPress son propre répertoire

Notez également que bien que ce schéma de sécurité s'appelle Obscure URL , il ne s'agit pas de la même chose que sécurité par obscurité . Obscure URL est un schéma de sécurité parfaitement valide qui vaut tout autant qu'un mot de passe, tandis que la sécurité par obscurité repose sur l'utilisation de procédures secrètes non prouvées.

Les mêmes mises en garde s'appliquent aux mots de passe: appelez le dossier personnalisé quelque chose comme 7nxnkkugrdzm , pas happy-snappy-admin . Assurez-vous également que vos utilisateurs sont conscients que l’URL de l’administrateur est un secret.

    
réponse donnée cmc 13.03.2013 - 15:47
la source
7

Il y a en fait un très bon tutoriel à ce sujet:

  

Comment masquer les informations WordPress dans votre code source miroir

     

Comprend comment renommer wp-content, renommer wp-admin et supprimer la balise du générateur de WordPress.

     

Ce didacticiel modifiera les preuves évidentes dans votre code source, supprimant efficacement les informations WordPress de votre site .

Il explique comment modifier le nom du dossier, l'URL de connexion wp-admin et comment s'assurer que login.php est redirigé vers le site principal afin que les utilisateurs puissent s'y rendre directement.

    
réponse donnée Graeme 09.01.2011 - 19:09
la source
6

Si vous souhaitez empêcher les utilisateurs de niveau abonné de voir le répertoire wp-admin, vous pouvez créer des versions autonomes des pages de connexion / enregistrement et de profil / édition dans leurs propres répertoires. Ensuite, vous pouvez protéger votre dossier d’administrateur via htaccess ou une restriction IP. (Cependant, si vous faites cela, vous devriez créer une exception pour le fichier admin-ajax, car certains plugins l'utilisent pour ajouter, euh, une fonctionnalité AJAX).

Cette approche vous donne "l’obscurité" souhaitée (ce qui ne fait pas grand chose, mais permet souvent aux clients et aux gestionnaires de se sentir mieux), et ajoute une sécurité réelle en limitant l’accès à l’administrateur. De plus, honnêtement, une URL qui dit simplement "/ login" est bien plus jolie que "wp-login.php".

Cela devrait aller sans dire que cela ne rend pas votre site à l'épreuve des balles. Mais c’est une belle amélioration de base.

    
réponse donnée MathSmath 15.11.2010 - 08:11
la source
2

Un moyen de verrouiller le panneau de commande administratif consiste à utiliser les règles .htaccess. Ajoutez simplement un fichier .htaccess à la racine du répertoire wp-admin. Après avoir ajouté ce fichier, ajoutez simplement la règle suivante pour refuser toutes les adresses IP et autoriser uniquement votre adresse 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>
    
réponse donnée Josh 07.12.2011 - 15:10
la source
1

Si vous souhaitez renommer wp-admin afin d'ajouter une couche de sécurité supplémentaire à votre installation WordPress, vous pouvez également essayer la Plaque chauffante WordPress Roots / Bedrock . Cela peut aider à isoler la racine Web pour limiter l'accès aux fichiers non Web. Il peut également aider à organiser / sécuriser l’ensemble du noyau WordPress en le plaçant dans son propre sous-répertoire, comme renommer wp-content / to app /, ainsi que les fonctionnalités supplémentaires suivantes:

  • Gestion des dépendances avec Composer
  • Configuration facile de WordPress avec des fichiers spécifiques à l’environnement
  • Variables d'environnement avec Dotenv
  • Autoloader pour les mu-plugins (utilisez les plugins habituels comme mu-plugins)
  • Sécurité renforcée (racine Web séparée et mots de passe sécurisés avec wp-password-bcrypt)

Vous pouvez également consulter leur rapport GitHub pour une utilisation plus détaillée:

    
réponse donnée Carl Alberto 16.05.2016 - 05:22
la source
0

Consultez enlace pour vous aider.

    
réponse donnée edelwater 14.11.2010 - 22:09
la source
0

Non, il n'est pas possible de renommer le dossier wp-admin avec un code trop court ou un hack htaccess,

Par le passé, j’ai fait de même pour un client en effectuant une recherche complète dans le dossier via Coda (l’éditeur que j’utilise) pour la balise "wp-admin, wp-content ... etc" et j’ai supprimé le "wp- "à partir des fichiers.

Ensuite, vous pourrez l'installer, mais:
Vous devez faire la même chose avec les plugins que vous voulez installer, Vous devez mettre à jour le noyau manuellement en effaçant la balise "wp-" des nouvelles versions.

De toutes les façons, je ne vous suggère pas de faire quelque chose comme ça, laissez-le tel quel et essayez d'implémenter une page de connexion / enregistrement / profil utilisateur pour offrir une meilleure expérience à vos utilisateurs / clients.

  

Cristian de Cozmolabs avoir   écrivez un très bon tutoriel. Vous pouvez   éditer un peu le code et le faire fonctionner   n'importe quel thème WordPress.

Vous pouvez également ajouter un formulaire de publication à partir de l'interface afin que l'administrateur et les utilisateurs dotés des fonctionnalités permettant de rédiger une publication puissent le faire à partir de l'interface.

  

Ici vous pouvez voir un exemple et un code   sur la façon de créer une page Frontend Post.    Soumission de publication front-end

Vous pouvez également consulter quelques plugins ici qui font la même chose avec plus fonctionnalité.

    
réponse donnée Philip 10.01.2011 - 10:56
la source

Lire d'autres questions sur les étiquettes