www.monsite.fr/page=contact en www.monsite.fr/contact.html (possible sur l'index?)

Nouveau WRInaute
Bonjour,

Je suis content de rejoindre cette communauté ! vive WRI ! J'ai pu trouver bon nombre de réponses à mes questions en parcourant ce forum sauf une seule que voici :mrgreen:

Le contexte:
J'ai une page index.php qui reçoit un parametre $_GET['page'] qui permet de savoir quelle contenu charger. En effet je peux ajouter autant de contenu/pages que je veux du moment que mon GET charge une valeur dans ma base de données.
Exemple:
www.monsite.com/page=presentation
www.monsite.com/page=qui-suis-je
www.monsite.com/page=contact

Bref jusque là c'est facile et il n'y a aucun problème.

Mais je coince au niveau de la réécriture d'URL.
J'aimerai en réalité qui les trois pages ci dessus soient réécrite de la sorte:
www.monsite.com/presentation.html
www.monsite.com/qui-suis-je.html
www.monsite.com/contact.html

Comment faire en sachant évidement qu'il peut y avoir une infinité de valeur possible pour $_GET['page'] ?
Je ne parvient pas à faire comprendre dans mon htacces qu'il ne s'agit ni de répertoires, ni de "vrai" page présente à la racine de mon site :?

J'espere que vous pourrez m'aider car meme malgré mes recherches je n'arrive à rien :oops: .

Merci d'avance,
Je reste sur le forum si besoin de plus d'informations.
 
WRInaute accro
Bonjour

c'est tres simple, quelquechose du genre :

rewriterule (.+).html /index.php?page=$1

il suffit ensuite de modifier tes liens pour envoyer vers /presentation.html, ton serveur traduira cela en index.php?page=presentation
 
Nouveau WRInaute
Ca marche vraiment super :D Je pensais que c'était bien plus compliqué et qu'il fallait gérer des exception pour ne pas confondre les réécritures avec des dossiers !

J'ai une dernière question qui m'évitera de la poser plus tard:

Admettons que je décide de séparer d'autres parametres (en plus de $_GET['page']) par un tiret en sachant que les parametres contiennent déjà des tirets.

J'aimerai en fait réécrire cette url:
www.monsite.com/page=qui-suis-je&categorie=pro-2a
En:
www.monsite.com/qui-suis-je-pro-2

Ne va t-il pas y avoir confusion avec les tirets des paramètres GET et les tiret du Rewriting ?

J'ai essayé ça par rapport à ce que tu m'as donné précédent mais ca ne fonctionne pas:
RewriteRule ([0-9a-zA-Z-]+)-([0-9a-zA-Z-]+).html /index.php?page=$1&cat=$2

Merci encore et désolé d’embêter avec, au final, des problèmes pas si problématique que ca (je suis juste débutant :oops: )
 
WRInaute impliqué
et en rajoutant un ^ devant :
^RewriteRule ([0-9a-zA-Z-]+)-([0-9a-zA-Z-]+).html /etc...

Euuhhh , au fait, il sort d'où le .html ?? , il est pas dans : -http://www.monsite.com/qui-suis-je-pro-2 , peut-être une erreur dans ton post ?
 
Nouveau WRInaute
Oui une erreur de ma part :p
Je tiens à ce qu'il y ait le .html (que j'ai oublié).

Ton code ne marche pas ca me provoque une external error 500 :?

A quoi sert le chapeau en tout debut de ton code s'il te plait ?

Voici la ligne de code que j'ai tenté de mettre en place sans succès:
^RewriteRule ([0-9a-zA-Z-]+)-([0-9a-zA-Z-]+).html /index.php?page=$1&cat=$2

Merci encore d'avance.
 
WRInaute impliqué
Désolé j'avais répondu trop vite , c'était pas la bonne place, normal l'erreur 500 !

je voulais écrire :

RewriteRule ^([0-9a-zA-Z-]+).....
Le ^c'est pour indiquer qu'il tienne compte de ce qu'il y a avant la parenthèse.
 
Nouveau WRInaute
Ce n'est pas grave :) Merci.

Par contre ca ne marche toujours pas...
Code:
RewriteRule ^([0-9a-zA-Z-]+),([0-9a-zA-Z-]+).html /index.php?page=$1&cat=$2

Quand je décide d'afficher $_GET['page'] ca m'affiche $_GET['cat'].

Super bizarre :?
 
Nouveau WRInaute
Enfin la réponse trouvée !!

Il suffisait de mettre la dernière règle en premiere position dans le fichier .htaccess !! C'était à devenir fou !!

Merci encore WRI ^^
 
Discussions similaires
Haut