Rewrite Rule Apache
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.
Commentaires
Afficher les commentaires en Vue non groupée | Vue groupée