Rediriger un NDD avec un sous-dossier vers un autre NDD.

1. Besoin

Lors de la redirection, il faut supprimer la portion /fr/.

Ainsi, https://monsite.com/fr/contact.html doit devenir https://unsite.com/contact.html

2. Code .htaccess

Le code ci-dessous doit être placé dans le fichier .htaccess se trouvant à la racine du site web monsite.com

RewriteCond %{HTTP_HOST} (www\.)?monsite\.com [NC]
RewriteCond %{REQUEST_URI} /fr/.* [NC]
RewriteRule (fr/)(.*) https\://www.unsite.com/$2 [R=301,L]

2.1. Explications

La première ligne va vérifier le nom de domaine (HTTP_HOST) : est-ce qu’on accède à une URL vers le nom de domaine monsite.com (ou www.monsite.com); cela peu importe le protocole (http ou https).

La seconde ligne va vérifier l’URL en dehors du NDD (REQUEST_URI): ce qui suit www.monsite.com et donc, /fr/contact.html : est-ce que l’URL commence par /fr/ ?

Si les deux conditions sont rencontrées, la troisième ligne va opérer la redirection. La première partie (fr/)(.*) va initialiser la valeur de remplacement $1 à ce qui est dans les premières parenthèses (et donc fr/) et $2 à ce qui suit (et donc contact.html). La seconde partie redirige vers https\://www.unsite.com/$2$2 est donc initialisé correctement : on perd le fr/ dans la redirection.