Skip to content

Rewrite Rule Apache

Migrant mon site d'un outil que j'ai développé en php vers un blog, il me fallait mettre quelques rewrite rule dans Apache pour que les visiteurs retrouvent leur petit.

Le problème avec les rewrite rule d'Apache est que l'on ne peut pas mettre des URL avec des paramètres dans l'URL que l'on veut rediriger vers une autre. Exemple :

RewriteRule ^article.php?theme=Linux&id_fic=1 /blog/toto.php

La régle précédente ne fonctionne pas.

La solution

La solution que j'ai trouvé pour faire fonctionner ces rewrite rule est d'utiliser les variables d'en-tête HTTP que l'on peut utiliser avec les conditions. Exemple : RewriteCond %{REQUEST_URI} ^/article\.php$
RewriteCond %{QUERY_STRING} theme=Linux&id_fic=1
RewriteRule .* /blog/archives/16-De-la-3D-avec-une-ATI-Radeon-9000-et-une-Debian-Woody.html [R=301,L]

Explication

La 1ère condition permet de sélectionner le programme php, La 2ème permet de sélectionner les paramètres du programme php et la règle permet de rediriger vers la nouvelle page (on redirigie toutes les URL qui répondent aux conditions précédentes). J'ai utilisé le flag R=301 pour que les robots sachent que la page a changé de place de façon permanente et donc cela permet normalement de leur dire de mettre à jour la page dans leur base de données.

Rétroliens

Pas de rétroliens

Commentaires

Afficher les commentaires en Vue non groupée | Vue groupée

Pas de commentaires

Ajouter un commentaire

Marquer un texte en gras: *mot*, souligner un texte: _mot_.
Les smilies standard comme :-) et ;-) sont convertis en images.
Les adresses Email ne sont pas affichées, et sont seulement utilisées pour la communication.

Pour éviter le spam par des robits automatisés (spambots), merci d'entrer les caractères que vous voyez dans l'image ci-dessous dans le champ de fomulaire prévu à cet effet. Assurez-vous que votre navigateur gère et accepte les cookies, sinon votre commentaire ne pourra pas être enregistré.
CAPTCHA

Form options
tweetbackcheck