australien Posté 18 Janvier 2006 Posté 18 Janvier 2006 Bonsoir à tous, Aprés differentes recherches retsées vaines, je me de vous poser ma question. J'interviens sur un site web d'annonces Acutellement, j'ai déjà mis une regle de réécriture pour transformer mes adresses par exemple : annonce.php?id=xx en annonce-xx.html jusqu'à là pas de probleme admettons que ce fichier annonce.php se trouve dans un dossier par exemple : http://www.monsite.com/module/annonce/ j'aimerai savoir si il est possible, pas une regle de réécriture, de transformer l'adresse http://www.monsite.com/annonce-xx.html en http://www.monsite.com/module/annonce/annonce.php?id=xx J'espère que quelqu'un pourra m'aiguiller sur la regle que je dois ajouter dnas mon htacces pour se faire. si la question a déjà été poser, n'hésitez pas à m'orienter vers le sujet que je n'aurai su trouver. en vous remerciant d'avance pour votre lecture et votre attention cordialement PS Ce code ne crée pas d'erreur mais renvoie vers une page blanche.. RewriteRule ^annonce-([a-z0-9]+).html$ /module/annonce/annonce.php?id=$1 [L]
yvan02 Posté 18 Janvier 2006 Posté 18 Janvier 2006 RewriteRule ^annonce-([a-z0-9]+).html$ /module/annonce/annonce.php?id=$1 [L] <{POST_SNAPBACK}> ta règle me semble correcte, as tu essayé avec RewriteRule ^annonce-(.*).html$ /module/annonce/annonce.php?id=$1 [L] ton .htacess se trouve bien à la racine de http://www.monsite.com ? en appelant http://www.monsite.com/module/annonce/annonce.php?id=xx ça fonctionne ?
australien Posté 23 Janvier 2006 Auteur Posté 23 Janvier 2006 Meci yvan02 pour ta réponse, tout d'abord, l'url rewirting que j'ai mis en place fonctionne, mon htacces est bien à la racine de mon site et en appelant http://www.monsite.com/module/annonce/annonce.php?id=xx la regle de réécriture fonctionne bien Autrement, j'avais déjà essayé avec (.*) à la place de ([a-z0-9]+) mais vu que c'est un nombre qui est appelé j'avais déjà preferé un (.*) à la place de ([a-z0-9]+) qui fonctionnait d'ailleurs aussi Bref, nous souhaitons trouver une regle qui fonctionne et qui nous permette de faire disparaitre module/annonce de nos url sans avoir à modifier toute la structure de notre site. nous essayons donc de trouver une regle qui permette de transformer adresse du type http://www.monsite.com/annonce-x.html (ou x est un nombre) en http://www.monsite.com/module/annonce/annonce.php?id=x malheureusement nos essai pour l'instant ne nous donne soit à une erreur soit à une page blanche avec cette regle RewriteRule ^annonce-([a-z0-9]+).html$ /module/annonce/annonce.php?id=$1 [L] Merci à vous
kot Posté 23 Janvier 2006 Posté 23 Janvier 2006 (modifié) Yop, plusieurs interrogations pour faire avancer le schmilblick Je fais marcher mes règles sous IIS, je sais qu'il y a des différences avec apache mais bon: c'est normal que ta règle commence par ^? cela ne devrait-il pas être (.*) ou (?:.*) non ? moi j'ai besoin de backslaché mes ? dans la partie résultat En gros la règle RewriteRule (.*)annonce-([a-z0-9]+).html$ /module/annonce/annonce.php \?id=$2 [L] testée sur http://www.monsite.com/annonce-12.html fonctionne correctement Il n'y a rien d'autre dans ton htacess? edit: PS: au fait, c'est normal qu'il n'y ait pas de http://www.monsite.com/ dans le résultat? et t'as regardé le log d'erreurs de ton htaccess? Modifié 23 Janvier 2006 par kot
australien Posté 24 Janvier 2006 Auteur Posté 24 Janvier 2006 Merci kot d'essayer de faire avancer le schmilblick alors, j'avais déjà essayé ta regle et d'autres RewriteRule (.*)annonce-([a-z0-9]+).html$ /module/annonce/annonce.php \?id=$2 [L] et oui elle fonctionne si j'appele une adresse type http://www.monsite.com/module/annonce/annonce-x.html où x est une nombre mais si j'appele une adresse du type http://www.monsite.com/annonce-x.html j'ai le droit à une jolie page blanche et dépourvue de code la regle semble bonne puisqu'il n'y a pas d'erreur mais nous n'avons pas le resultat recherché Merci en tout cas PS : j'utilise dans mes posts www.monsite.com comme exemple. En réalité je me suis rendu compte que domaine existe il ne s'agit pas du tout du site sur le quel nous travaillons
TheRec Posté 24 Janvier 2006 Posté 24 Janvier 2006 (modifié) Bonjour, RewriteRule ^annonce-([a-z0-9]+).html$ /module/annonce/annonce.php?id=$1 [L] Cette règle est juste, encore que s'il n'y aura que un ou des chiffres comme paramètre tu peux laisser ceci [a-z0-9]+ pour un simple [0-9]+, mais ce n'est qu'un détail. Concernant le problème, as-tu essayé de donner le chemin sans le slash (/) de début ? RewriteRule ^annonce-([0-9]+).html$ module/annonce/annonce.php?id=$1 [L] En fonction de la configuration de ton serveur cela peut avoir un impact, le slash de début renvoi le site à la racine du serveur, configurée dans Apache (sauf erreur le DOCUMENT_ROOT). Sinon je ne vois pas vraiement d'où le problème peut venir, si tu as l'occasion de regarder le log de la réécriture d'Apache après avoir lancé la requête "-http://www.monsite.com/annonce-x.html" Cela te donnera des informations sur ce qui a été renvoyé par le serveur. Pour activer le log de réécriture je te laisse consulter l'aide de la directive RewriteLog et RewriteLogLevel . Modifié 24 Janvier 2006 par TheRec
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant