Aller au contenu

htaccess et changement de répertoire


Sujets conseillés

Bonjour,

je suis nouveau, donc d'abord merci.

Voilà ce que je ne comprends pas:

Google m'a référencé il y a quelques temps avec une adresse

-http://www.monsite.com/xx/index.php?lang=xx

Depuis j'ai modifié l'arborescence de mon site, le répertoire xx n'existe plus

et je voudrais que le fichier htaccess renvoie vers l'adresse :

-http://www.monsite.com/index.php?module=accueil〈=xx

J'ai essayé l'une et l'autre des 2 formules suivantes, mais aucune ne marche (ne match):

RewriteRule ^lang=([a-z]{2})$ index.php?module=accueil〈=$1 [L]

RewriteRule /([a-z]{2})/.*\.php index.php?lang=$1 [L]

J'ai mis une balise <base> qui indique la racine de mon site.

Qu'est-ce que j'ai raté?

Merci

Lien vers le commentaire
Partager sur d’autres sites

Bonjour et bienvenue à bord,

Tu as raté le fait que la QUERY_STRING doit se traiter différemment.


RewriteCond %{QUERY_STRING} lang=([a-z]{2})
RewriteCond %{QUERY_STRING} ! module=accueil
RewriteRule .* http://www.monsite.com/index.php?module=accueil&lang=%1 [R=301,L]

La deuxième condition sert à éviter de rediriger l'url -http://www.monsite.com/index.php?module=accueil&lang=xx vu qu'elle l'est déjà.

Mais cette règle ne redirigera qu'une seule page qui sera sous la forme -http://www.monsite.com/xx/index.php?lang=xx

Tu es certain que c'est ce que tu souhaites :?:

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Merci de me tendre une perche.

Je pense avoir compris le principe.

Je ne voudrais pas abuser, mais comment faire pour récupérer le "ZZ" (abréviation d'1 langue) dans :


/>http://www.monsite.com/ZZ/index.php?lang=xx

au cas où ZZ serait différent de xx.

Ce n'est pas très logique, je sais, mais le principe m'intéresse.

A bientôt

Modifié par mosaic40
Lien vers le commentaire
Partager sur d’autres sites

En ajoutant une troisième condition, telle que

RewriteCond %{REQUEST_URI} /([A-Z]{2})/

qui te permettra de détecter 2 caractères en majuscules encadrés de / et /

Si la casse n'est pas toujours en majuscules, ajoute [NC] en fin de cette ligne ;)

Tu pourras dans ce cas y faire référence avec %2

Dan

PS: si tes anciennes URLs ont toujours ces 2 caractères, tu pourras dans ce cas supprimer la dernière condition qui recherche "accueil" dans la query string.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...