Url rewriting

Eléphant du PHP | 281 Messages

26 févr. 2005, 17:56

Bonjour,

J'ai décidé de me documenter sur l'url rewriting afin d'utiliser cette méthode pour certains de mes sites dynamiques. Mais je me suis aperçu que le sujet est très souvent, voir d'après mes rechercher, toujours traité sans exemple.

Aucun script de base permettant de comprendre le système à créer etc... Je me demande donc si c'est normal ? ou ais je si mal cherché ?

Quelqu'un aurait t'il un lien ou bien faut t'il acheter un livre ?

Merci d'avance.

Cordialement,
Laurent

merci de ne pas poser de questions dans le forum actualités, ce forum a juste pour sujet les actualités du php

Eléphant du PHP | 71 Messages

26 févr. 2005, 17:59

j'étzais juste entrain de chercher la même chose que toi, et pareil, aucun exemple concret !
Dommage, si vous pouviez nous donnez un coup de main, il serait le bienvenue :wink:

Administrateur PHPfrance
Administrateur PHPfrance | 430 Messages

27 févr. 2005, 01:05

c'est con, mais le meilleur tuto que je conaisse à l'heure actuelle c'est : http://httpd.apache.org/docs-2.0/misc/rewriteguide.html

Note. je débute moi aussi avec le rewriting => je peut dire une grosse bourde

Sinon, pour faire en francais et super simple :
Il faut activer le moteur de rewriting pour la zone d'effet (par exemple dans un .htaccess)

Code : Tout sélectionner

RewriteEngine on
Ensuite faut savoir que tu peux utliser tel ou telle règle en fonction du client, de l'environnement, ... avec la directive RewriteCond, mais je l'ai jamais utilisée

enfin le RewriteRule de base (sans les options)
faut savoir que les URLs sont relatives dans les regles, c'est a dire que si ton .htaccess est dans le répertoire /web/toto/ et qu'on appelle /web/toto/article4.php tu récupérera article4.php
donc ta regle pourrais devenir :

Code : Tout sélectionner

RewriteRule ^article([0-9]+).php article.php?id=$1
c'est un bête remplacement par expression régulière ;)

bon courage !

Eléphant du PHP | 281 Messages

27 févr. 2005, 11:25

Ehe ok merci j'vais jetter un oeil à ça dès que j'aurais un peu de temps ;)

Ps : C'est pas moi qui est mis le sujet dans actualité.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

27 févr. 2005, 19:29

pour ma part, je pose mes questions d'URL rewriting chez WebRankInfo - Forums
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

ViPHP
fab
ViPHP | 2657 Messages

27 févr. 2005, 21:41

Petite question sur le sujet , quand on utilise l'url rewriting rien ne change coté code ? car je suis en plein developpement d'un site ( bientot sur vos écrans j'espere ) et je voudrais savoir si il faut changer quelque chose ou on peut s'occuper de ça en dernier ?

Mammouth du PHP | 1885 Messages

27 févr. 2005, 21:58

Tu dois coder ton script comme si tu n'utilisais pas l'URL rewriting. Mais, il faudra planifier le fait que tu devras peut-être modifier quelques liens générés par ton script afin de pouvoir profiter de cette réécriture.

Ensuite, tu commences à planifier son implantation. Cela ne veut pas dire que tu dois modifier la manière dont tu accèdes aux données mais les liens afin d'y accéder.

Exemple:
topic-525.php sera redirigié en fait vers viewtopic.php?t=525

Donc ton fichier d'origine (viewtopic.php) existe toujours et doit toujours accepté le paramètre t afin de récupérer le sujet. Je sais pas si tu comprends un peu le principe.

Article intéressant:
http://www.webmaster-hub.com/publication/article5.html

;)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

ViPHP
fab
ViPHP | 2657 Messages

27 févr. 2005, 22:08

merci :) je sort ce soir ( quoi comme tous les soirs ) donc demain pour l'article

SPAM :et aussi pour mon article sur phpteam

Eléphant du PHP | 334 Messages

27 févr. 2005, 23:36

Concrètement, est-ce qu'il est possible de le faire sans accès aux configurations du serveur ? Hébergement Online.net ou Free.fr par exemple ?

Mammouth du PHP | 1885 Messages

27 févr. 2005, 23:58

Qu'entends-tu par accès aux configurations du serveur?

Si Apache a été compilé avec mod_rewrite (rewrite_module) et que l'administrateur t'a donné les droits d'utilisation des fichiers .htaccess, tu devrais alors avoir la possibilité d'utiliser l'URL rewriting.

Comme l'indique l'article suggéré plus haut, il suffit de tester. Une erreur 500 vous fixera sur le fait que vous n'avez pas accès à l'URL rewriting.

:)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 334 Messages

28 févr. 2005, 00:32

Mon site est hébergé chez online.net donc j'ai aucun accès à la config d'apache c'est ce que je voulais dire :wink:

Je ferai des tests demain :)

Eléphant du PHP | 281 Messages

01 mars 2005, 09:29

Ehe vraiment pas mal l'article proposé par Xenon_54 ;)

thx

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

01 mars 2005, 14:25

Pour tous
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 281 Messages

02 mars 2005, 19:59

Re bonjour,

Hum, j'ai un p'tit problème :

Mon hébergeur accepte l'url rewriting. Je commence donc à faire quelques petits test et ça marche très bien.

Je précise que généralement mes liens sont du type :

Code : Tout sélectionner

index.php?cat=dossier&p=page index.php?p=page
Je converti donc avec l'url rewriting :

Code : Tout sélectionner

RewriteEngine On RewriteRule ^index,([a-z]+),([a-z]+)\.html$ index.php?cat=$1&p=$2 [L] RewriteRule ^index,([a-z]+)\.html$ index.php?p=$1 [L] RewriteRule ^index.html$ index.php [L]
Jusque là ça marche très bien, seulement si je viens à avoir un lien du type :

Code : Tout sélectionner

index.php?cat=classes&p=liste&id_categorie=id
Je rajoute donc le code suivant au .htaccess :

Code : Tout sélectionner

RewriteRule ^index,classes,liste#([0-9]+)\.html$ index.php?cat=classes&p=liste&id_categorie=$1 [L]
Seulement voila une fois que je teste mon lien :
index,classes,liste#id.html

Ca m'affiche une erreur 404 ce qui signifie que mon code marche pas. Je penses que ça vient du fait que j'ai déclaré une réécriture contenant déjà les cat et les p. Seulement je ne sais comment m'y prendre pour que ça marche.

Quelqu'un a t'il déjà été confronté à ce problème ? a t'il une idée ?

Je suis preneur :wink:

Merci

@+

ViPHP
fab
ViPHP | 2657 Messages

07 mars 2005, 00:46

J'ai eu beau lire la doc etc.. quelqu'un sait comment convertir
http://www.toto.com/index.php?page=support
en http://support.toto.com ?