Rediriger le sous-dossier vers le dossier racine dans Apache, NGINX, IIS et Cloudflare

Photo of author

By pierre



Mon site web résidait initialement dans un sous-répertoire, mais j’ai opté pour une migration vers le répertoire racine du domaine.

L’enjeu majeur consistait à maintenir tous les articles accessibles via le même chemin qu’auparavant, tout en effectuant une redirection des URL vers la racine du domaine ou vers un autre emplacement spécifique.

Configuration pour Apache

Le serveur HTTP Apache offre la fonctionnalité RewriteCond. Pour réaliser ce changement, il faut modifier le fichier .htaccess ou httpd.conf en y insérant les directives ci-dessous:

RewriteEngine on
RewriteBase /
RewriteRule ^subfolder/(.*)$ /$1 [R=301,NC,L]

Dans ce contexte, nous définissons la base comme étant /, et notre règle de réécriture s’applique à toutes les URL se trouvant dans notre sous-répertoire en utilisant des expressions régulières. L’option R=301 spécifie une redirection permanente.

Configuration pour Nginx

Une redirection similaire peut être configurée avec le serveur web Nginx grâce à la directive de réécriture, que l’on insère dans le fichier /etc/nginx/nginx.conf ou /etc/nginx/conf.d/default.conf:

location ^~ /subfolder {
     rewrite ^/subfolder(.*)$ $1 last;
}

Ici, le modificateur ^~ garantit que cette correspondance de préfixe conserve sa priorité, même si vous deviez ajouter des correspondances de regex ultérieurement.

Configuration pour IIS

Avec IIS, le module de réécriture d’URL permet de rediriger les URL situées dans un sous-répertoire pour qu’elles apparaissent comme si elles étaient à la racine. La modification du fichier web.config dans le dossier webroot (%SystemDrive%\inetpub\wwwroot) avec la configuration ci-dessous permet d’atteindre cet objectif :

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Root_URL_Rewrite" stopProcessing="true">
                    <match url="^(.*)" />
                    <action type="Rewrite" url="/subfolder/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Il est également possible d’utiliser l’interface utilisateur du gestionnaire IIS pour ajouter une règle de redirection entrante.

Configuration pour Cloudflare

La mise en place d’une redirection similaire est possible via Cloudflare en suivant les étapes ci-dessous:

  • Connectez-vous à votre compte Cloudflare.
  • Sélectionnez le compte Cloudflare approprié pour le domaine où vous souhaitez configurer la redirection d’URL.
  • Cliquez sur l’onglet « Règles », puis sur « Règles de page ».
  • Dans « Règles de page », cliquez sur « Créer une règle de page ». Une fenêtre de dialogue s’ouvre pour votre domaine.
  • Dans « Si l’URL correspond », saisissez le modèle d’URL du sous-répertoire concerné par la règle, par exemple https://example.com/subfolder.
  • Cliquez sur « Ajouter un paramètre » et choisissez « URL de transfert » dans le menu déroulant.
  • Cliquez sur « Sélectionner le code d’état » et optez pour 301 (redirection permanente) ou 302 (redirection temporaire).
  • Saisissez l’URL de destination de votre domaine racine et cliquez sur « Enregistrer et déployer » pour finaliser le processus.

L’exemple ci-dessus illustre la redirection de tout le contenu de https://toptips.fr.com/blog vers https://toptips.fr.com

Conclusion

Comme on peut le constater, la redirection ou le mappage d’un sous-répertoire vers la racine ou vers une autre URL est une opération courante, prise en charge par la plupart des plateformes populaires avec différentes approches.

Ensuite, nous examinerons comment héberger plusieurs sites web sur une même adresse IP.

Avez-vous apprécié cet article ? N’hésitez pas à le partager avec d’autres !