puzzleGd Posté 15 Décembre 2008 Posté 15 Décembre 2008 Bonjour, J'ai une reecriture de la sorte : RewriteRule ^formation/(.*)/(.*),([0-9]+)-([0-9]+)\.php$ formations.php?id_filiere=$3&id_formation=$4 [L] qui me transforme : texte1/texte2/formation-exemple,1-10.php en formations.php?id_filiere=1&id_formation=10 Je cherche la façon la plus simple pour effectuer une redirection 301 d'une URL reecrite indexée par google vers une nouvelle URL générée par ma plateforme Ainsi, si je change la filiere d'une formation : texte1/texte2/formation-exemple,1-10.php doit rediriger vers texte1/texte2/formation-exemple,2-10.php J'ai tenté de faire après ma rewriterule : Redirect permanent texte1/texte2/formation-exemple,1-10.php http://www.monsite.com/texte1/texte2/formation-exemple,2-10.php Mais du coup je recupere les parametres : http://www.monsite.com/texte1/texte2/forma...d_formation=233 comme si ma redirection repassait dans ma rewriterule Si quelqu'un pouvait m'aiguiller pour avoir quelque chose de propre :] Merci P.
Jeanluc Posté 15 Décembre 2008 Posté 15 Décembre 2008 Essaie ceci: Redirect permanent texte1/texte2/formation-exemple,1-10.php http://www.monsite.com/texte1/texte2/formation-exemple,2-10.php? Jean-Luc
captain_torche Posté 15 Décembre 2008 Posté 15 Décembre 2008 Essaye plutôt avec ça Redirect permanent texte1/texte2/formation-exemple,1-10.php texte1/texte2/formation-exemple,2-10.php Le souci, c'est que ton url est relativement complexe; il y figure des éléments qui n'ont aucune utilité pour identifier ton offre. Il aurait mieux valu avoir une url du type formation-10.php qui elle, sera valide quelle que soit la filière. Il te suffirait ensuite, dans le code, de retrouver la filière associée à cette formation pour afficher ta page. Actuellement, tu devras modifier ton .htaccess pour chaque changement de filière, voire pour chaque modification de mots-clés (à quoi servent-ils ?), ce qui risque à terme d'alourdir considérablement ton fichier.
Dan Posté 15 Décembre 2008 Posté 15 Décembre 2008 En toute logique, la réponse de Jean-Luc est la bonne ! (sans oublier le ? final qui devrait éviter l'ajout des paramètres) J'ajouterais que le RedirectPermanent devrait être fait avant la réécriture par mod_rewrite.
captain_torche Posté 15 Décembre 2008 Posté 15 Décembre 2008 Au temps pour moi, j'avais pas les yeux en face des trous.
puzzleGd Posté 15 Décembre 2008 Auteur Posté 15 Décembre 2008 Merci pour vos réponses Le schema des données m'a été fourni, une formation peut appartenir à plusieurs filieres. Si google pénalise les duplicates, seul une fiche formation devrait ressortir, ce qui convient. La fiche formation mentionne la filiere associée, si je n'ai que l'id de la formation, je ne pense pas pouvoir connaitre facilement la filiere (j'ai une table formation<->filiere) Pour les mots intermédiaires, point d'abus, juste des mots en rapport aux formations/filieres pour optimiser les URLs Je ne dis pas que cette construction est top optimisée, lors de la conception, c'est la solution qui a été retenue. Concernant mon cas, Si je place le "?", mon URL ne contient plus les paramètres mais elle contient tout de mm le ?... ce qui me gene toujours D'autres propositions ? De mon coté, une solution qui fonctionnait, placer au-dessus de ma regle générique : RewriteCond %{REQUEST_URI} ^/texte1/texte2/formation-...,1-10\.php$RewriteRule (.*) http://www.monsite.com/texte1/texte2/formation-...,2-10.php [L,R=301] mais je cherche quelque chose de plus concis... ...comme l'a soulevé captain_torche, je cherche à automatiser mon htaccess. Je dois tenir compte des changements de mots-clés d'une formation et de l'association filiere/formation. A chaque changement important, le htacces est régénéré avec une partie fixe (directives apache) et les regles de reecriture qu'imposent les modifs sur les formations. J'esperait pouvoir mettre mon Redirect permanent apres les regles de reecriture ce qui me faciliterait la tache P.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant