Aller au contenu

Sujets conseillés

Posté

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 +FollowSymlinks
RewriteEngine on
RewriteRule ^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

Posté
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. :blush:

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

Posté

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

Posté

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 +FollowSymlinks
RewriteEngine on
RewriteRule ^video-([0-9]+)-([a-z\-]*)\.html$ showvideo.php?idv=$1[L]

Mais toujours une 404

Posté (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 :P .

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é par Fabrice11
Posté (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 +FollowSymlinks
RewriteEngine on
RewriteRule ^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é par Kent

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...