URL Rewriting problème de la présence de variables

Nouveau WRInaute
Salut ,

j'ai un petit problème concernant URL Rewriting en cas de la présence de variables

j'ai testé dans fichier normale genre

test.php en test.html avec ce code ça marche bien

Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^test\.html$  /test.php [L]

maintenant le problème c'est au niveau de la présence des de variables dans lien
genre

test.php?id=13&titre=testtitre

lorsque j'ai écrit ce code



Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^test_([0-9]+)_([0-9]+)\.html
 /test.php?id=$1&titre=$2  [L]

ça marche pas et il m'affiche cette erreur


Code:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@monsite.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

merci
 
WRInaute impliqué
imados a dit:
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^test\.html$  /test.php [L]
Tu pourrais essayer comme ceci :
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^test\.html$  /test.php [QSA,L]
 
WRInaute passionné
rewriterule doit être sur une seule ligne :
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^test_([0-9]+)_([0-9]+)\.html$ /test.php?id=$1&titre=$2  [L]
 
Nouveau WRInaute
webmasterlamogere a dit:
rewriterule doit être sur une seule ligne :
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^test_([0-9]+)_([0-9]+)\.html$ /test.php?id=$1&titre=$2  [L]

oui effectivement webmasterlamogere c'est la cause de ce problème :)

mais il y a une petite chose que j'ai pas compris dans ma page index.php

ça ne n'actualise pas j'ai encore le lien sous forme de id et titre

mais si je tape le lien sous forme de test_13_testtitre.html ça marche

que dois-je faire pour pour le lien qui fait appel à test.php?id=13&titre=testtitre

merci
 
WRInaute passionné
il faut modifier les liens sur tes pages pour mettre la forme réécrite.
Si l'ancienne forme est indexé il faut en plus faire une redirection 301 pour ne pas perdre le référencement comme indiqué ici : -http://www.urlrewriting.fr/article-08,07,17,Eti@-Redirection-9.html
 
Nouveau WRInaute
webmasterlamogere a dit:
il faut modifier les liens sur tes pages pour mettre la forme réécrite.
Si l'ancienne forme est indexé il faut en plus faire une redirection 301 pour ne pas perdre le référencement comme indiqué ici : -http://www.urlrewriting.fr/article-08,07,17,Eti@-Redirection-9.html

merci webmasterlamogere

j'ai lus l'article très intéressant

voici mon cas j'ai 2 variable en lien id et titre

Code:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{QUERY_STRING} ^id=(.*)&titre(.*)$ 
RewriteRule ^football_([0-9]+)_([a-zA-Z0-9-]+)\.html$  /video.php?id=$1&titre=$2 [R=301,L]

ça marche pas comme ça :!:

je sais pas pourquoi

merci
 
WRInaute passionné
c'était pas loin ;)
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^football_([0-9]+)_([0-9]+)\.html$ /video.php?id=$1&titre=$2&stop  [L]
RewriteCond %{QUERY_STRING} ^id=([^&]*)&titre([^&]*)$
RewriteRule ^video\.php$  /football_%1_%2.html? [R=301,L]
 
Nouveau WRInaute
merci webmasterlamogere :wink:

avec quelque modification ça marche maintenant
voici le code final

Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^football_([0-9]+)_([a-zA-Z0-9-]+)\.html$ /video.php?id=$1&titre=$2&stop  [L]
RewriteCond %{QUERY_STRING} ^id=([^&]*)&titre=([^&]*)$
RewriteRule ^video\.php$  /football_%1_%2.html? [R=301,L]

il y'a juste une petite question que je n'ai pas compris

j'ai une page index.php et video.php

dans la page index.php j'affiche une liste des vidéo à partir d'une base de donnée

sur la page index.php il y'a des liens qui amènent aux vidéos de la page video.php s'affiche sous forme

www.monsite.com/video.php?id=13&titre=testtitre

et lorsque je clique sur le lien , ce dernier change en

www.monsite.com/football_13_testtitre.html

je pense normalement que sur la page index.php le lien devrait être comme ça

www.monsite.com/football_13_testtitre.html

merci :wink:
 
Nouveau WRInaute
webmasterlamogere a dit:
il faut changer tous les liens pointant vers les pages avec url réécrite. ca va éviter de la charge serveur inutile.

je pense que vous m'avez pas bien compris ou je me suis mal exprimés

j'ai une seul page ou il y'a le passage de variables c'est video.php
et le lien pour accéder à cette page c'est la page d'accueil de index.php

donc sur la page index.php j'ai le code suivant qui fait amène au lien video.php sur le clique de lire la suite...

Code:
<a href='./video.php?id=$idn&amp;titre=$idn3'>Lire la suite</a>

donc maintenant il m'affiche

Code:
www.monsite.com/video.php?id=13&titre=testtitre

mais des que je clique sur lien il change à

Code:
www.monsite.com/football_13_testtitre.html

donc je sais pas comment contourner ce problème pour que aussi dans la page accueil index.php m'affiche

Code:
www.monsite.com/football_13_testtitre.html

merci
 
WRInaute passionné
je confirme : il faut modifier le code html de tous les liens pointant vers video.php?id=... pour mettre les nouveaux liens.
il faut donc modifier la page index.php pour construire le href différement
 
Discussions similaires
Haut