Donc, nous avons récemment reçu un site Web d’un client qui était en train d’être développé sur mesure pour notre client et ils ont essentiellement des URL non-amicales “article.php? Id = 1″. J’essaie de les rendre SEO friendly et pendant que je crée la nouvelle URL je ne peux pas faire leur ancien redirect automatiquement à ce que je viens de créer.
J’ai essayé le suivant sans succès:
RewriteEngine On RewriteBase / RewriteRule ^articulo.php?id=1$ "xerox-phaser-3020bi" [NC,R=301,L] RewriteRule ^xerox-phaser-3260dni$ /articulo.php?id=2 [R=301,L] RewriteRule ^xerox-phaser-33dn$ articulo.php?id=3 [L]
Comme vous le remarquez, je crée manuellement l’URL pour chaque produit (environ 38 seulement) et comme l’application n’imprime pas category.php? Name = nameofcategory & article.php? Id = 1, j’ai pensé que ce serait la meilleure façon de faire des URL conviviales.
Ce que je veux, c’est que lorsque quelqu’un clique sur notre site Web pour le produit /article.php?id=1, il soit dirigé vers l’URL conviviale telle que: / xerox-phaser-3260dni
Merci!
Modifier:
RewriteEngine On RewriteCond %{QUERY_STRING} ^id=1$ RewriteRule ^articulo\.php$ /xerox-phaser-3260dni/? [R=301,L]
Ce code redirige mais n’affiche pas la page lors de l’access à l’URL conviviale.
Votre méthode ne fonctionne pas car vos URL incluent des symboles comme ?
. Vous devez utiliser {QUERY_STRING}
.
Essayez ce qui suit:
RewriteCond %{QUERY_STRING} article.php?id=1$ RewriteRule (.*) /xerox-phaser-3260dni/? [R=301,L]
N’oubliez pas d’append un ?
à la fin des URL redirigées car cela est nécessaire pour que la chaîne de requête n’apparaisse pas à la fin de l’URL.
Assurez-vous de vider le cache avant de le tester.