Aller au contenu

Sujets conseillés

Posté

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

Posté

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 :?:

Posté (modifié)

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
Posté

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.

Veuillez vous connecter pour commenter

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



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