2010-08-26 37 views
0

Dans mon fichier htaccess, j'ai les deux règles suivantes. Je voudrais que le second se produise à la condition que le premier ne corresponde pas. Actuellement, ils sont tous les deux exécutés. Y a-t-il un moyen de contourner la collision?Redirections HTACCESS

redirect 301 /lorem/ipsum-keyword.html /lorem/dolorem-keyword.html 
RewriteRule (.*)-keyword.html$ /dir/file.php?param=$1 

Merci d'avance.

Répondre

1

Utilisez mod_rewrite pour les deux et utiliser l'option L pour assurer qu'aucune autre réécriture se produit. Quelque chose comme ceci:

RewriteRule ^lorem/ipsum-keyword.html$ http://yourdomain.com/lorem/dolorem-keyword.html [R=301,L] 
RewriteRule (.*)-keyword.html$ /dir/file.php?param=$1 
+0

Hrm, ça ne fonctionne pas pour moi :( – Matrym

+0

Vous devez ajuster la première règle pour correspondre à votre Je vais mettre à jour – mwittrock

+0

Ça a été critique aussi Merci! – Matrym

0

Vous pouvez utiliser une règle de réécriture pour le 301 et ajouter l'indicateur L, il ignorera donc les règles suivantes.

je ne peux pas tester, mais cela devrait fonctionner:

RewriteRule /lorem/ipsum-keyword.html$ /lorem/dolorem-keyword.html [R=301,L] 
RewriteRule (.*)-keyword.html$ /dir/file.php?param=$1 
+0

La première règle ne rattrape pas du tout ... même quand je supprimer la deuxième – Matrym

+0

Ensuite, votre « redirect 301 » ne fonctionnerait pas non plus. Vous devrez peut-être rendre la règle relative et non absolue. Comme je ne connais pas votre système de fichiers strucutre Je ne peux pas vous dire ce qui ne va pas La syntaxe de la règle devrait être OK – 2ndkauboy