Donner à WordPress son propre répertoire

De nombreuses personnes veulent que WordPress s’exécute à partir de la racine de leur serveur et de leur nom de domaine (par exemple http://example.com) mais ne veulent pas que les fichiers de WordPress soient installés à la racine de leur serveur. WordPress vous permet d’installer votre site dans un sous-répertoire tout en l’affichant à la racine de votre serveur/nom de domaine.

À partir de la version 3.5 de WordPress, les utilisatrices et utilisateurs de multisite peuvent utiliser les fonctionnalités listées ci-dessous. Si vous utilisez une version plus ancienne, il vous faudra la mettre à jour avant de faire quoi que ce soit.

Note aux développeuses et développeurs de thèmes et d’extensions : cela ne changera rien pour vous : vos thèmes et extensions seront toujours situés dans un dossier wp-content de l’installation WordPress.

Déplacer une installation depuis la racine du serveur vers son propre répertoire

Partons du principe que votre site se situe sur example.com. Vous avez deux méthodes pour déplacer WordPress dans un sous-répertoire :

1) Sans modifier le réglage de l’adresse du site (elle restera example.com)

2) En modifiant l’adresse du site (elle sera maintenant example.com/subdirectory)

Méthode 1 : sans changement d’URL du site

1) Après avoir installé WordPress dans le répertoire racine, déplacez l’ensemble des fichiers depuis la racine vers votre sous-répertoire.

2) Créez un fichier .htaccess dans le répertoire racine, et mettez-y le contenu suivant (remplacez simplement example.com par votre URL et sous_repertoire par le nom de votre sous-répertoire) :

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/sous_repertoire/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /sous_repertoire/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ sous_repertoire/index.php [L] 
</IfModule>

C’est tout 🙂

Méthode 2 : avec changement d’URL

Processus de déplacement

Note : si vous avez déjà installé WordPress dans un sous-répertoire, certaines étapes ont déjà été faites automatiquement.

  1. Créez le nouvel emplacement où les fichiers WordPress seront stockés (nous utiliserons /wordpress dans nos exemples).
    Spécifique : sur Linux, faites mkdir wordpress à partir de votre répertoire www. Vous souhaiterez probablement utiliser chown apache:apache sur le répertoire wordpress que vous venez de créer.
  2. Allez sur l’écran des Réglages généraux.
  3. Dans l’option Adresse de WordPress (URL), mettez l’adresse de vos fichiers WordPress, par exemple : http://example.com/wordpress
  4. Dans l’option Adresse du site (URL), mettez le répertoire racine de votre site, par exemple : http://example.com
  5. Enregistrez les modifications. Ne vous inquiétez pas si une erreur s’affiche après avoir enregistré. Continuez le processus.
  6. Déplacez maintenant les fichiers de votre installation WordPress depuis la racine du serveur vers le sous-répertoire.
  7. Copiez (mais ne déplacez pas !) les fichiers index.php et .htaccess depuis le répertoire de WordPress vers le répertoire racine de votre site (adresse du site). Le fichier .htaccess est non visible, donc vous devrez peut-être paramétrer votre client FTP pour afficher les fichiers masqués. Si vous n’utilisez pas de permaliens personnalisés, alors vous n’avez peut-être pas de fichier .htaccess à copier.
    Spécifique : si vous faites tourner WordPress sur un serveur Windows (IIS) et que vous utilisez les permaliens personnalisés, vous devriez avoir un fichier web.config à la place d’un fichier .htaccess dans le répertoire WordPress. Pour le fichier index.php, les instructions sont les mêmes mais pour le fichier .htaccess vous devez déplacer (et pas copier) le fichier web.config sur votre répertoire racine.
  8. Ouvrez le fichier index.php de votre répertoire racine dans un éditeur de texte.
  9. Faites les changements suivants puis enregistrez le fichier :
    Remplacez la ligne
    require( dirname( __FILE__ ) . '/wp-blog-header.php' ); par la suivante (en remplaçant « wordpress » par le nom de votre répertoire) :
    require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );
  10. Connectez-vous sur le nouvel emplacement de votre installation, qui devrait maintenant être http://example.com/wordpress/wp-admin/
  11. Si vous aviez des permaliens personnalisés, allez dans l’écran de réglage des permaliens et mettez à jour la structure de vos permaliens (enregistrez simplement les modifications). WordPress mettra automatiquement à jour votre fichier .htaccess s’il dispose des droits d’écriture sur le serveur. Si WordPress ne peut pas écrire dans le fichier .htaccess, vous devrez copier manuellement votre fichier .htaccess (dans le même répertoire que le fichier index.php).

Modification du fichier .htaccess

Dans certains cas, il arrive que des personnes souhaitent installer des versions différentes dans des sous-répertoires (comme /2010, /2011, /dernier , etc.), et veulent que le site (par défaut) utilise une version spécifique. Dans ce cas, installez WordPress dans un sous-répertoire comme par exemple ici /sous_repertoire et ajoutez la ligne suivante dans votre fichier .htaccess (modifiez le nom du sous-répertoire et l’URL du site en fonction de votre contexte) :

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ sous_repertoire[L]

Maintenant, lorsque les visiteurs arriveront à la racine de votre nom de domaine, il seront automatiquement redirigés dans le sous-répertoire que vous avez spécifié.

Déplacer les répertoires spécifiques de WordPress

Les liens suivants expliquent comment modifier certains répertoires spécifiques de WordPress :

Traduit par Jb Audras
Relu par Sébastien Serre & Bruno Tritsch
Dernière mise à jour le 04 mai 2021

Contribuer à la documentation en français de WordPress

Journal des modifications

04 mai 2021Jenny Dupuy – Modification d’ancres de liens non traduites