Comment faire de la réécriture d'URL en php

Eléphant du PHP | 117 Messages

01 oct. 2008, 17:14

Bonjour, à tous j'aimerais utiliser la réécriture d'URL pour mon site mais je ne sais pas si c'est possible compte tenu de la manière dont je procède :
je vais m'expliquer un peu plus, j'ai créé une page bateaux.php dans laquelle il y a la liste des bateaux, sur cette page on peut cliquer sur le détails d'un bateau pour en savoir plus, est-il possible que l'url change en fonction du bateau sélectionné ?

Merci d'avance pour vos conseils.

ViPHP
ViPHP | 3607 Messages

01 oct. 2008, 17:19

J'ai pas trop compris ton histoire...
Mais avec de l'url rewriting, tu peux très bien avoir l'url bateaux.html qui pointe vers bateaux.php et l'url bateaux-xx.html qui pointe vers bateaux.php?id=xx&action=detail...
Alors soit j'ai rien compris à ta question, soit il faudrait plus de détails ;)

Eléphant du PHP | 117 Messages

01 oct. 2008, 17:50

Merci pour ta réponse, je vais essayer de mieux m'expliquer.
J'ai une page dynamique "bateaux.php" qui affiche la liste des bateaux donc quand je suis sur cette page j'ai l'url http://www.monsite.fr/bateaux.php
Dans cette liste lorsque je clique sur le détail d'un bateaux, j'aimerais avoir une url du style :
http://www.monsite.fr/bateaux.php/plus- ... -du-monde/
Or soitj'ai l'url http://www.monsite.fr/bateaux.php soit j'ai l'url http://www.monsite.fr/bateaux.php?nom=p ... -du-monde/, mais je ne veux pas voir nom= dans mon url.
Est-ce possible ?

ViPHP
ViPHP | 3607 Messages

01 oct. 2008, 18:14

Bien sûr que c'est possible,
Il faut que tu apprennes l'url rewriting à l'aide des fichier .htaccess (un lien au hasard: http://www.webrankinfo.com/actualites/2 ... riting.htm )
Et ensuite tu écrit une règle qui dit:
"les urls du type index.php/unnomavecdeslettresetdestiretsetunslashalafin/ doivent être changée en index.php?nom=unnomavecdeslettresetdestiretsetunslashalafin/"
Ce n'est pas très très compliqué ;)
Fait des essais et reviens nous voir si tu as des questions ;)

Eléphant du PHP | 117 Messages

01 oct. 2008, 18:17

Merci pour ton aide, je test et reviens si besoin.
Merci encore.

Eléphant du PHP | 117 Messages

06 oct. 2008, 14:15

J'ai réussi à faire ce que je voulais, merci bien.
Par contre j'essaye de faire quelque chose et je n'y arrive pas.
En fait toutes mes pages s'appellent bateaux.php, rivieres.php et dans mon url j'ai :
http://www.monsite.fr/bateaux.php
http://www.monsite.fr/rivieres.php

Et je voudrais avoir ceci :
http://www.monsite.fr/bateaux/
http://www.monsite.fr/rivieres/

Est-ce possible ?
Merci d'avance.

ViPHP
ViPHP | 3607 Messages

06 oct. 2008, 19:43

Euh ben oui c'est possible...
Reste à savoir ce que tu as essayé de faire ;)
et on pourra voir pourquoi ça n'a pas marché!

Eléphant du PHP | 117 Messages

06 oct. 2008, 20:44

Alors j'ai réussi à faire ceci :
# Reecriture des numeros de pages des bateaux:
RewriteRule ^bateaux/([0-9]+)$ /monsite/bateaux.php?page=$1 [L]

De cette manière l'url est comme ceci :
http://www.monsite.fr/bateaux/1/

Ensuite j'ai essayé lorsque j'ai des pages du type :
http://www.monsite.fr/bateaux.php
de les réécrire comme ceci :
http://www.monsite.fr/bateaux/

J'ai donc tenté de l'écrire comme ceci dans mon fichier htaccess :
# Reecriture des .php en /:
RewriteRule ^bateaux/$ /monsite/bateaux.php$1 [L]

Ceci fonctionne mais il faut le faire pour toutes les pages, y a t-il un moyen de faire en sorte que toutes les pages .php soient réécrites de cette manière ?

merci d'avance.