Si vous utilisez WordPress pour vos sites et blogs, vous savez certainement que tous vos thèmes, plugins et tous les fichiers (images, documents PDF, Word, Excel, etc.) que vous insérez dans vos articles se trouvent dans le dossier wp-content. Malheureusement, les pirates et autres script-kiddies le savent aussi, et comme WordPress est utilisé par des dizaines de millions de sites, ils recherchent fréquemment des sites contenant un dossier wp-content à la recherche d’un plugin ou d’un thème qui contiendrait une faille de sécurité.
De plus, certaines grandes sociétés considèrent que les sites WordPress sont des sites personnels et bloquent toutes les feuilles de style et les javascripts contenus dans les dossiers wp-content, ce qui fait que pour les employés de ces sociétés votre site n’aura plus aucune mise en page (expérience vécue personnellement), ce qui est bien dommage quand on sait que l’apparence d’un site est très important pour attirer et garder vos visiteurs.
Nous allons voir ensemble les étapes pour renommer le dossier wp-content, car il ne suffit pas de juste le renommer, sinon votre site serait tout cassé.
Renommer le dossier wp-content
Je vous recommande de faire ces modifications dès l’installation de votre site, mais nous verrons à la fin de l’article les étapes supplémentaires pour un site existant.
La première chose à faire est de renommer le dossier wp-content, par exemple en assets ou static (mais vous pouvez mettre le nom que vous voulez, du moment qu’il ne comporte ni espace, ni accent). Oui, vous allez tout casser votre site, mais nous allons corriger cela juste après.
Dans votre interface d’administration du site vous devriez avoir ce genre d’erreurs :
Sans compter que tout votre site est entièrement repassé en anglais.
Modifier le fichier de configuration (wp-config.php)
Pour résoudre ces problèmes, ouvrez le fichier de configuration wp-config.php et tout à la fin du fichier, juste après les lignes suivantes :
/** Chemin absolu vers le dossier de WordPress. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
Insérez ces deux lignes et sauvegardez le fichier :
define ('WP_CONTENT_FOLDERNAME', 'assets');
define ('WP_CONTENT_DIR', ABSPATH . WP_CONTENT_FOLDERNAME) ;
Votre site devrait être revenu en français et vos thèmes et plugins devraient être revenus, par contre vous devrez peut-être les réactiver. Bien entendu, n’oubliez pas de changer assets par le nom de remplacement de votre dossier.
Corriger les liens des images
Le travail est presque terminé, mais vous vous êtes peut-être aperçu que les images ne s’affichent plus. C’est parce qu’il manque deux dernières lignes à ajouter au fichier wp-config.php, à la suite de celles que nous venons d’insérer :
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/');
define('WP_CONTENT_URL', WP_SITEURL . WP_CONTENT_FOLDERNAME);
Vous pouvez vérifier dans la rubrique de sélection des thèmes, les images d’aperçu sont revenues.
Attention, si votre site est en https, modifiez la ligne ci-dessus en conséquence.
Corriger les liens des articles et pages existants
Les changements que nous venons de faire ne sont pas rétro-actifs, donc si vous avez un site qui contient déjà des articles et des pages avec des images ou d’autres fichiers, leurs liens ne fonctionneront plus. Pour y remédier nous allons utiliser le script Search Replace DB fourni par interconnect/it.
Une fois que vous avez téléchargé le script, je vous invite à le décompresser et à placer le dossier du script à la base de votre site (au même niveau que le fichier wp-config.php). Je vous recommande de renommer ce dossier afin d’éviter qu’un petit malin cherche un dossier du nom du script et bousille votre base de donnée.
Il est important de placer ce script dans un dossier à part, car à la fin de son utilisation il propose de se supprimer ainsi que tout ce qui se trouve dans son dossier. Vous ne voudriez pas que tout votre site soit supprimé d’un coup. De plus, ce script touchant à la base de données, il est possible qu’une mauvaise manipulation rende votre base de données inutilisable, c’est pourquoi je vous recommande de faire une sauvegarde complète de votre site et de votre base de donnée avant de l’utiliser.
Une fois que le script est en place sur votre site, saisissez dans votre navigateur le nom de votre site suivi du dossier que vous venez de renommer, par exemple www.exemple.com/search-and-replace/. Vous arriverez sur une page qui ressemble à la suivante :
Dans la première ligne, nous allons indiquer dans le premier champs (replace) le précédent nom de notre dossier, soit wp-content, et dans le champs suivant (with) le nom de remplacement, soit assets dans mon cas.
Dans la deuxième ligne vous retrouvez normalement automatiquement les informations de connexion à votre base de données. Si ce n’est pas le cas, je vous invite à compléter les champs avec les informations que vous avez indiquées lors de la création de votre site. Si vous ne vous en souvenez plus, vous pouvez les récupérer dans le fichier wp-config.php de votre site.
Une fois que vous avez complété les informations nécessaires, je vous invite à cliquer sur le bouton dry run. Cette option va simuler les modifications et vous permettre de voir ce qui sera modifié dans la base de données. Vous pouvez ainsi modifier vos réglages si des modifications non voulues apparaissent.
Une fois que vous êtes sûr de vos réglages, vous pouvez cliquer sur le bouton live run qui appliquera les changements à la base de données (de toute façon vous aviez fait une sauvegarde de votre base de données juste avant, n’est-ce pas 🙂 ).
Vous pouvez maintenant vérifier que vos articles et pages contiennent à nouveau les liens corrects vers le dossier renommé. Une fois que vous aurez bien vérifié, vous pouvez supprimer le dossier du script que nous venons d’utiliser en cliquant sur le bouton delete me. Si vous recevez un message d’erreur, connectez-vous en FTP sur votre site et supprimez manuellement le répertoire du script.
J’espère que ces informations vous auront été utiles. Si vous avez des questions ou des remarques, n’hésitez pas à les partager dans les commentaires ci-dessous.
Merci pour votre tuto… J’ai vu d’autre site expliquant le renommage du dossier wp-content mais il a fait planter mon site.
En effet, le define (‘WP_CONTENT_DIR’, ne faisait pas appel au ABSPATH . WP_CONTENT_FOLDERNAME
De plus définitions suivantes n’étaient pas proposées et expliquées :
define(‘WP_SITEURL’, ‘http://’ . $_SERVER[‘HTTP_HOST’] . ‘/’);
define(‘WP_CONTENT_URL’, WP_SITEURL . WP_CONTENT_FOLDERNAME);
Sans compter du script pour corriger la DB 😮
Vraiment bravo, très bien expliqué 😉
Merci pour votre commentaire, ça fait toujours plaisir de savoir qu’un de mes articles à pu aider quelqu’un 🙂
Je confirme, merci beaucoup! Ça marche pour moi aussi, y compris pour un site déjà en ligne. Impeccable, bravo!