Lorsque je prépare d’importantes modifications pour mon blog, je travaille sur une autre instance de WordPress, une « copie » installée dans un autre répertoire.

Pour éviter que les moteurs de recherche n’indexe ce répertoire (donc du contenu dupliqué) ou que des utilisateurs n’y accède, je restreins l’accès avec des règles basées sur mon adresse IP.

Voici le contenu de mon fichier .htaccess (à uploader à la racine du répertoire à protéger) :

Deny from all
Allow from 123.123.123.123

La première instruction indique qu’il faut refuser toutes les visites, et la seconde me permet d’autoriser mon adresse IP (vous pouvez dupliquer cette ligne pour rajouter d’autres adresses).

Ces instructions ont pour effet d’afficher une erreur 500 à toutes les autres personnes que moi.

Cependant, une solution plus propre consiste à rediriger automatiquement tout le trafic à la racine du blog en fonction des adresses IP : pour cela, il faut utiliser une règle de réécriture d’url.

RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule .* http://www.woueb.net [L]

L’explication en détails :

  1. Le module de réécriture d’url est activé,
  2. Une condition est définie : « toutes les IP autres que 123.123.123.123″,
  3. On réécrit l’url suivant la règle suivante : « pour toutes les pages du site, et pour toutes les personnes définie par la condition, le visiteur est renvoyé vers www.woueb.net »

Voilà, je ne sais pas si tout le monde a suivi, mais j’espère l’avoir expliqué assez simplement ! :)

Note : comme le souligne Aestyle dans son commentaire, il faut que votre hébergeur ait le module URL Rewriting d’activé au niveau du serveur.