Kent Posté 10 Janvier 2007 Posté 10 Janvier 2007 Bonjour à tous, Je souhaite mettre en place la réecriture de liens pour un site. Ma regle me semble correcte et je ne comprend pas d'où viens le probleme. J'ai des adresses du type : showvideo.php?idv=123321&titre=AbCDefG Je souhaiteré un affichage de ce type là : video-123321-AbCDefG.html J'ai donc ecrit cette regle : Options +FollowSymlinksRewriteEngine onRewriteRule ^video-([0-9]+)-([a-z\-]*)\.html$ showvideo.php?idv=$1&titre=$2 [L] Le navigateur continue d'afficher des URLs du type showvideo.php?idv=123321&titre=AbCDefG Quelques précisions : J'utilise WAMP5. Avec PHP5 et MySQL 5 , le mod_rewrite est activé. Merci pour vos réponses
Fabrice11 Posté 10 Janvier 2007 Posté 10 Janvier 2007 Le navigateur continue d'afficher des URLs du type showvideo.php?idv=123321&titre=AbCDefG Bonjour, ta règle est correcte. Cependant, je crois que tu n'as pas compris comment fonctionne l'URL rewrite. L'url Rewrite de transforme pas tes liens PHP en HTML mais l'inverse !! Dans ton site, développé surement en PHP, il faut mettre des liens en HTML de type : <a href="showvideo-123-abc.html">Video</a> Ensuite lorsque ton serveur reçoit l'url ci-dessus, il la transforme en PHP de type showvideo.php?idv=123321&titre=AbCDefG si il trouve une règle correspondante dans le .htaccess Bonne journée
Kent Posté 10 Janvier 2007 Auteur Posté 10 Janvier 2007 Bonjour Fabrice, Dans ma page .php j'ai un lien du type : echo "<li><a href='video-".$lesDernieresVideos['idvideo']."-".$lesDernieresVideos['titre'].".html'>".$lesDernieresVideos['titre']."</a>"; L'url rewriting transformera ceci en : showvideo.php?idv=123&titre=AbC Le navigateur me mets "not found" ... Je ne comprends pas
Fabrice11 Posté 10 Janvier 2007 Posté 10 Janvier 2007 Est-ce que le titre de la page marque "Erreur 500" ?
Kent Posté 10 Janvier 2007 Auteur Posté 10 Janvier 2007 Non le type d'erreur n'est pas internal 500 , mais bien Page not found, comme ou un joli 404 ! Je viens de testé en essayant d'enlever le titre de la video et dans le RewriteRule et dans le lien html, et ça fonctionne, le fait que je precise le titre pose probleme. Comment puis-je faire pour avoir un lien du type <a href="video-1-vacances.html">Video</a> Mais que apache ne se serve que de l'id et non du reste , il transformeré donc ça en : showvideo.php?idv=1 J'ai essayé comme ceci : Options +FollowSymlinksRewriteEngine onRewriteRule ^video-([0-9]+)-([a-z\-]*)\.html$ showvideo.php?idv=$1[L] Mais toujours une 404
Fabrice11 Posté 10 Janvier 2007 Posté 10 Janvier 2007 (modifié) Alors il te met aucune page car il n'arrive pas à associer une règle à 'url demandé. Ta règle ne doit pas être bonne finalement . Je te donne une règle utilisée dans un de mes projets: RewriteRule ^discussion-(.+)-([0-9]+)-([0-9]+).html$ index.php?visu=listingTopic&id_topic=$2&page=$3 [L] Cependant les chiffres sont à la fin de l'URL et pas au milieu. Modifié 10 Janvier 2007 par Fabrice11
Kent Posté 10 Janvier 2007 Auteur Posté 10 Janvier 2007 (modifié) En fait dans l'url je voudrais afficher le titre de la video, mais dans mon fichier php, je ne me sert que de son id, je voudrais donc interpreter qu'une partie de l'url et non l'url en entier. Dans video-1-vacances.html , ce qui est interessant pour le referencement c'est que le titre soit afficher dans l'url, mais ce que moi je souhaite en PHP c'est recuperer ce "1" j'ai donc ecrit la regle suivante. Options +FollowSymlinksRewriteEngine onRewriteRule ^video-([0-9]+)-([a-z\-]*)\.html$ /showvideo.php?idv=$1[L] Cette regle vas bien prendre prendre le 1er terme entre parenthese pour le placé derriere "idv=" non ? EDIT : J'ai resolu mon probleme la casse etait prise en compte du coup ça ne foncionnait pas, pour ceux qui recontre le même soucis, ajouter le flag [NC] à la fin ou ecrivez "[a-zA-Z]" au lieu de "[a-z]" Modifié 10 Janvier 2007 par Kent
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant