Aller au contenu

Sujets conseillés

Posté

Bonjour à tous !

Je dois générer un htaccess avec des redirection 301 suivant le modèle suivant :

/repertoire/fichier.php.id=3   vers   http://www.monsite.lan/ma_page_1.html
/repertoire/fichier.php.id=5 vers http://www.monsite.lan/ma_page_2.html
/repertoire/fichier.php.id=7 vers http://www.monsite.lan/ma_page_3.html
/repertoire/fichier.php.id=9 vers http://www.monsite.lan/ma_page_4.html

J'ai essayé ceci, mais sans succès :

RedirectPermanent /repertoire/fichier.php.id=3 http://www.monsite.lan/ma_page_1.html

Si j'utilise mon navigateur avec l'adresse

http://www.monsite.lan/repertoire/fichier.php?id=3

, j'ai une erreur 404.

Alors qu'une redirection de ce type fonctionne très bien :

RedirectPermanent /repertoire/old.html http://www.monsite.lan/ma_nouvelle_page.html

Merci pour votre aide et vos suggestions !

Posté

Tu ne peux pas extraire les paramètres avec un RewriteRule seul, tu dois compléter avec un RewriteCond


RewriteCond %{QUERY_STRING} ^id\=(.*)$
RewriteRule /repertoire/fichier.php http://www.monsite.lan/ma_page_%1.html [R=301,L]

Posté

Merci pour la réponse !

Si je comprends bien, sur la ligne RewriteRulle, le %1 à la fin correspond à l'id récupéré de l'ancienne adresse.

Si c'est ça, je me suis peut-être mal exprimé dans mon exemple.

J'ai modifié la destination :

/repertoire/fichier.php?id=3   vers   http://www.monsite.lan/blanc.html
/repertoire/fichier.php?id=5 vers http://www.monsite.lan/bleu.html
/repertoire/fichier.php?id=7 vers http://www.monsite.lan/rouge.html
/repertoire/fichier.php?id=9 vers http://www.monsite.lan/vert.html

C'est possible de faire un "select case" dans htaccess ?

Merci

Posté

Dans ton cas, c'est un Rewritemap qu'il te faut !

Mais pour cela il FAUT un serveur dédié !

Posté

Si toutes les urls en question correspondent à un schéma précis (qu'on peut isoler), on peut envisager également une redirection vers une page spéciale qui fera elle-même la correspondance avec la nouvelle url.

Posté (modifié)

Que de propositions !

Captain_torche, j'ai 51 URL à rediriger (pour le moment, sinon en tout il y a +300 URL).

Le schéma est presque systématiquement /repertoire/fichier.php?id=5

Pour les autres, une redirection classique fonctionne parfaitement.

Dan, je suis effectivement sur un serveur dédié.

Je vais regarder comment utiliser Rewritemap.

Merci !

Modifié par jblog

Veuillez vous connecter pour commenter

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



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