Changer l’acces wp-admin

Changer l’URL de connexion (recommandé)

Option A — Avec un plugin (le plus simple)

  • WPS Hide Login (gratuit) ou équivalent.
  • Étapes:
    1. Sauvegarde + accès FTP au cas où.
    2. Installez/activez WPS Hide Login.
    3. Réglez votre nouvelle URL, par ex. /mon-espace/ et enregistrez.
    4. Testez dans une fenêtre privée. Notez bien la nouvelle URL.

Avantages: pas de hack du core, gère les détails et la compatibilité.
Attention: si vous désactivez le plugin, l’URL redevient /wp-login.php.

Option B — Sans plugin (serveur web)

Idée: garder wp-login.php mais ne l’exposer que derrière une URL “propre” et bloquer l’accès direct.

Apache (.htaccess) dans la racine WordPress:

# URL de connexion personnalisée
RewriteRule ^mon-espace$ wp-login.php [QSA,L]

# Bloquer l'accès direct à wp-login.php (sauf via l'URL ci-dessus)
<Files wp-login.php>
  Require all denied
</Files>

Puis autorisez l’accès à wp-login.php uniquement quand il est appelé via la réécriture. Selon l’environnement, on préfère plutôt limiter par IP (voir plus bas) pour éviter des effets de bord. Testez soigneusement (actions=logout, reset password, etc.).

Nginx (bloc server):

# URL de connexion personnalisée
location = /mon-espace {
    try_files $uri /wp-login.php$is_args$args;
}

# Bloquer l'accès direct
location = /wp-login.php {
    return 404;
}

Note: certains workflows (déconnexion, erreurs nonce) peuvent appeler wp-login.php directement; ajustez si nécessaire.

2) Restreindre l’accès à /wp-admin/

Même si l’URL ne change pas, limiter qui peut y accéder coupe 99% des scans automatiques.

  • Apache (autoriser une IP et bloquer le reste):
<Directory "/chemin/vers/votre-site/wp-admin">
    Require ip 203.0.113.25
    Require ip 2001:db8::/48
</Directory>
  • Nginx:
location ^~ /wp-admin/ {
    allow 203.0.113.25;
    allow 2001:db8::/48;
    deny all;
}
# Laissez admin-ajax.php accessible si nécessaire pour le front
location = /wp-admin/admin-ajax.php { allow all; }
  • Alternative: protection par mot de passe (HTTP Basic) sur /wp-admin/.

3) Bonnes pratiques de sécurité à ajouter

  • 2FA pour les comptes admin/éditeur (plugin “Two-Factor” officiel ou sécurité type Wordfence/Defender).
  • Limiter les tentatives de connexion (Limit Login Attempts Reloaded, ou via votre WAF/Reverse proxy).
  • Captcha/ReCAPTCHA sur le formulaire de connexion.
  • Désactiver ou filtrer XML-RPC si vous ne l’utilisez pas (ou limiter par IP).
  • Mises à jour automatiques, mots de passe forts, rôles minimaux, nettoyage des comptes inactifs.
  • Si vous avez un CDN/WAF (Cloudflare), ajoutez une règle “Security Level High” ou un Access Policy sur /wp-login.php et /wp-admin/.

Limitations à connaître

  • “Cacher” l’URL n’est pas une protection suffisante seule; pensez à la combiner avec 2FA et rate limiting.
  • Certains plugins/themes s’attendent à pouvoir rediriger vers wp-login.php; testez après chaque changement.
  • admin-ajax.php doit rester accessible au public pour des fonctions front (recherches, paniers, etc.).