Il y a quantité d’articles qui en parlent mais bien peu qui expliquent jusqu’au bout comment le faire sans perturber l’accès au backend. Nous allons tenter de tout mettre bout à bout.

Voici les étapes à suivre :

  • Protégez le dossier wp-admin par mot de passe (avec cPanel par exemple c’est très simple en utilisant le File Manager) via un fichier .htaccess et .htpasswds (voir par exemple ce tutoriel). Mettez un user / mot de passe différent de celui de l’admin wordpress, ainsi vous aurez une authentification à deux niveaux. Et si vous utiliser InfiniteWP, vous pouvez y stocker aussi ce niveau d’authentification).
  • Excluez admin-ajax.php et admin-post.php ainsi que les fichiers js, css, gif, png de l’admin en ajoutant ces lignes au fichier .htaccess
    <Files admin-ajax.php>
    Order allow,deny
    Allow from all
    Satisfy any
    </Files>
    <Files admin-post.php>
    Order allow,deny
    Allow from all
    Satisfy any
    </Files>
    <Files "\.(css|gif|png|js)$">
    Order allow,deny
    Allow from all
    Satisfy any
    </Files>
  • Et si vous avez encore des erreurs 404 ou trop de redirections, ajoutez cette ligne dans le .htaccess racine de votre wordpress (celui où il y a les directives ajoutées automatiquement par Wordress) et avant ces dernières :
    # Avoid 404 or redirection with wp-admin password protection
    ErrorDocument 401 default
    # BEGIN WordPress...

    (ou l’équivalent nginx mais je ne le connais pas encore).

Un point d’attention : si vous avez des éditeurs qui utilisent votre WordPress, n’oubliez pas de leur donner le user/mot de passe pour qu’ils continuent à pouvoir accéder au backend :-)

Sources :

Tags :

Classés dans :