Aller au contenu

Sujets conseillés

Posté

Bonjour,

J'ai un fichier .htaccess avec la regle suivante :

RewriteEngine On

RewriteRule ^alsace\.html$ region.php?idRegion=6 [L]

Le probleme est que quand je vais sur ...http://www.monsite.fr/region.php?idRegion=6

je ne suis pas redirigé vers http://www.monsite.fr/alsace.html

Est ce possible, et si oui, savez vous ce qui cloche dans ma regle ?

merci d'avance

Posté (modifié)

Salut,

C'est normal ...

Si tu veux aller à la page http://www.monsite.fr/alsace.html, il faut un lien du type

<a href="http://www.monsite.fr/alsace.html">

et non pas

http://www.monsite.fr/region.php?idRegion=6

Avec ta règle, tu dis au serveur "si on demande alsace.html, servir la page region.php?idRegion=6" et pas l'inverse. Dès lors, quand tu fais de l'url rewriting, ne perds pas de vue que les ur'sl 'originales' sont toujours accessibles et qu'il faut donc prendre garde de les supprimer pour éviter les contenus dupliqués ...

Si c'est une redirection que tu veux, la syntaxe est différente et tu dois utiliser le flag [R=301] (par exemple) :

RewriteEngine On
RewriteRule region.php?idRegion=6 http://www.monsite.fr/alsace.html [R=301]

ou

RewriteEngine On
RedirectPermanent region.php?idRegion=6 http://www.monsite.fr/alsace.html

Il faut que la page alsace.html existe réellement dans ce cas.

Bonne nuit :)

Modifié par KnockedMaster
Posté
Si c'est une redirection que tu veux, la syntaxe est différente et tu dois utiliser le flag [R=301] (par exemple) :

RewriteEngine On
RewriteRule region.php?idRegion=6 http://www.monsite.fr/alsace.html [R=301]

ou

RewriteEngine On
RedirectPermanent region.php?idRegion=6 http://www.monsite.fr/alsace.html

Et non ! Autant la première partie de ton post est correcte, autant ceci est faux ;)

Dès qu'il y a une query string, il faut procéder différemment parce que RewriteRule ne permet pas ce type de règle.

Il faut plutôt utiliser une réécriture conditionnelle comme:

RewriteCond %{QUERY_STRING} idregion=6
RewriteRule .* http://www.monsite.com/alsace.html

ou plus généralement

RewriteCond %{QUERY_STRING} idregion=([0-9]+)
RewriteRule .* http://www.monsite.com/region-%1.html

si tu veux qu'une URL avec idregion=12 comme paramètre se transforme en region-12.html

Mais il faut aussi modifier les sources comme tu le dis justement, la réécriture n'a rien de magique.

Posté

Huhu ... merci Dan pour avoir rectifié le tir ... prochaine fois je tournerai ma langue sept fois avant de parler :blush:

On va dire qu'il était tard ! :whistling:

Bonne journée et @+

Veuillez vous connecter pour commenter

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



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