web-dev-qa-db-fra.com

Changer l'URL de l'administrateur Wordpress

J'ai changé un peu ma structure de répertoire Wordpress. Voici ce que j'ai

define('WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] . '/wordpress');
define('WP_HOME',    'http://' . $_SERVER['SERVER_NAME']);
define('WP_CONTENT_DIR', dirname(__FILE__) . '/content');
define('WP_CONTENT_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/content');

J'ai donc un répertoire content qui contient mes plugins et mes thèmes. Et puis j'ai un répertoire wordpress qui contient les fichiers de base WP, moins le dossier wp-content.

Avec cette nouvelle structure, je dois accéder au backend WP avec cette URL: http://site.dev/wordpress/wp-admin 

Est-il possible de le changer pour que je puisse y accéder comme suit: http://site.dev/wp-admin

Je ne veux pas que wordpress soit dans l'URL. S'agira-t-il d'une mise à jour htaccess que je devrais effectuer ou y a-t-il un paramètre que je peux utiliser dans mon fichier wp-config.php?

10
Drew

Voici un article du site de wordpress.

http://wordpress.org/support/topic/how-to-change-the-admin-url-or-wp-admin-to-secure-login

  1. Ajouter une constante à wp-config.php 

    define('WP_ADMIN_DIR', 'secret-folder');  
    define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);  
    
  2. Ajouter le filtre ci-dessous à functions.php

    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);  
    }
    
  3. Ajouter la ligne ci-dessous au fichier .htaccess

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

J'ai joué avec cela et il y a un moyen beaucoup plus simple de faire tout cela dans cette fonction simple ci-dessous sans avoir à bouger avec rien d'autre (créer des dossiers inutiles, des redirections, des pages, etc.). 

// Simple Query String Login page protection
function example_simple_query_string_protection_for_login_page() {

$QS = '?mySecretString=foobar';
$theRequest = 'http://' . $_SERVER['SERVER_NAME'] . '/' . 'wp-login.php' . '?'. $_SERVER['QUERY_STRING'];

// these are for testing
// echo $theRequest . '<br>';
// echo site_url('/wp-login.php').$QS.'<br>';   

    if ( site_url('/wp-login.php').$QS == $theRequest ) {
        echo 'Query string matches';
    } else {
        header( 'Location: http://' . $_SERVER['SERVER_NAME'] . '/' );
    }
}
add_action('login_head', 'example_simple_query_string_protection_for_login_page');
3
Abu fateh

C'est un sujet très utile. J'ai fait quelques petites corrections dans la fonction et voici ma version:

add_filter('site_url',  'wpadmin_filter', 10, 3);

 function wpadmin_filter( $url, $path, $orig_scheme ) {
    $request_url = $_SERVER['REQUEST_URI'];

    $check_wp_admin = stristr($request_url, 'wp-admin');
    if($check_wp_admin){
        wp_redirect( home_url( '404' ), 302 );
        exit();
    }

    $old  = array( "/(wp-admin)/");
    $admin_dir = WP_ADMIN_DIR;
    $new  = array($admin_dir);
    return preg_replace( $old, $new, $url, 1);
 }

Principalement pour la redirection de wp-admin.

Et la partie la plus importante:

add_rewrite_rule( '^' . 'backend/(.*)','wp-admin/$1?%{QUERY_STRING}' );

Pour mettre à jour la règle .htaccess.

2
OneByte

Tout ce que je faisais a été déplacé dans le dossier /wp-admin (à l'intérieur de public_html/wordpress) dans public_html et j'ai vérifié pour m'assurer qu'il fonctionnerait en renommant mon dossier WordPress (j'ai utilisé wordpress_test, vous pouvez utiliser n'importe quoi) et est allé sur mon site example.com/wp-admin - cela fonctionnait de la même manière que si je passais à example.com/wordpress/wp-admin

La seule chose qui soit assez délicate est de changer le wp-admin en quelque chose d'autre, car WP a codé le wp-admin dans de nombreux fichiers. Changer simplement le nom provoque des erreurs php et autres. Le plugin simple que je trouve résoudra cela facilement. 

Remarque : Je n'ai pas eu à coder pour le faire. Je devais changer un peu de code pour le wp-admin, parce que le plugin ne faisait pas ce que je voulais.

1
Nicholas

Il existe un autre moyen d’assurer une meilleure tactique à votre administrateur sécurisé.

Aussi, avoir le nom wp-admin comme peut-être: "worksersneeded /"

Je l'ai fait à l'un de mes sites, s'est retrouvé miraculeusement alors que le site SSL testé affichait des informations différentes vers mon site à partir de différents emplacements géographiques.

Vous devrez télécharger un outil appelé Notepad ++: https://notepad-plus-plus.org/download/

À moins que vous ne travailliez beaucoup sur chacun des fichiers du répertoire.

Ensuite, vous devez extraire le WordPress dans un dossier.

Ensuite, éditez tous les fichiers du répertoire en cherchant après wp-admin . Ensuite, remplacez tous les fichiers par votre nom: "workersneeded" ou votre propre nom.

Comme dans le bloc-notes, entrez "rechercher dans les fichiers" pour "trouver quoi": wp-admin /

Et dans "remplacer par": workersneeded /

Puis remplacez tous les fichiers.

Vous devez également mettre cette ligne dans wp-config.php pour surveiller tous les problèmes:

ini_set('log_errors',TRUE);
ini_set('error_reporting', E_ALL);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');

Une fois que vous avez écrasé le plus dans le répertoire WordPress et que votre wp-admin a maintenant le nom "workersneeded", vous rencontrerez probablement de légers problèmes avec certains de vos plugins ou thèmes WordPress.

C'est pourquoi vous devrez les enregistrer dans le fichier error_log.txt.

Après avoir trouvé les erreurs dans le fichier. Vous devrez probablement éditer le fichier .php qui tente toujours de se connecter à wp-admin. De cette façon, vous pouvez remplacer les informations de fichier de wp-admin dans votre dossier d'administration.

Vous pouvez à nouveau télécharger vos plugins et remplacer la même procédure que ci-dessus par notepad ++. De cette façon, vous pouvez rendre tous les plugins disponibles avec le nouveau nom de dossier.

Ensuite, téléchargez le dossier de chaque plugin dans votre répertoire wp-content avec le plugin wp file manager.

Sachez que votre WordPress ne peut pas être mis à jour automatiquement, même en procédant à une réinstallation de votre WordPress. Vous devrez faire ces remplacements à chaque fois.

Cela a été fait avec la version 4.9.8 de WordPress ainsi que la dernière version 5.0.3

Avec la version 5.0.3, vous obtenez plus d’erreurs dans le fichier error_log.txt. Inconnu pourquoi.

0
Dealazer