| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
Shisui Nouveau WRInaute
Inscrit le: 21 Sep 2005 Messages: 9
|
Posté le : Mer Sep 21, 2005 17:18 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
Bon j'ai presque fini un script php qui permet de faire de l'url rewriting en php simplement, et en gérant les régles normales d'un fichier .htaccess mais le probléme c'est qu'il me faudrais quelqu'un pour le tester, ce script, vu que je suis pas un expert en url rewriting, donc si quelqu'un pouvait se dévouer pour ça, de préférence quelqu'un qui s'y connaisse en RegEx, sinon ca sert à rien
Précision : ca n'est pas le meme genre de script que celui déjà présenté sur ce forum Pour l'instant ca gére les rewritecond avec les variables %{HTTP_REFERER}, %{HTTP_USER_AGENT}, %{REMOTE_ADDR} et %{REMOTE_HOST}, et les rewriterule avec les flags [F], [G], [R], [C], [N], [NC] et bien sur [L] :p (J'essaye de mettre au point le [QSA] ) le tout dans une class
Donc voilà si quelqu'un d'expérimenté voulait se dévouer pour la bonne cause
Edit: Je veut bien mettre la source mais ca fait 400 lignes donc bon  |
|
| |
|
 |
wullon WRInaute accro

Inscrit le: 18 Sep 2004 Messages: 3870 Localisation: France
|
Posté le : Mer Sep 21, 2005 18:41 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
| Met la source sur un hébergeur distant (dans un .txt par exemple ^^). |
|
| |
|
 |
Shisui Nouveau WRInaute
Inscrit le: 21 Sep 2005 Messages: 9
|
Posté le : Mer Sep 21, 2005 18:46 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
Bof, je l'avais pas mise parceque free accepte pas les sources php donc bon :/
Note: c'est coloré maintenant, emrci twister
La source
Si quelqu'un a des critiques à faire sur le code je suis ouvert aussi J'ai commenté la plupart des fonctions et le reste est assez facile à comprendre je pense [/url]
Dernière édition par Shisui le Sam Sep 24, 2005 19:00; édité 1 fois |
|
| |
|
 |
Twister WRInaute passionné

Inscrit le: 16 Jan 2004 Messages: 618 Localisation: Lyon
|
Posté le : Mer Sep 21, 2005 19:11 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
Tu dis que tu n'utilises pas la même solution que ce qui a été présenté sur le forum, pourtant, d'après les commentaires dans ton fichier, tu utilises aussi l'erreur 404.
Quelle est la différence ?
Sinon, très bonne initiative, j'essaierais de la mettre en place dés que je pourrais...
 |
|
| |
|
 |
Shisui Nouveau WRInaute
Inscrit le: 21 Sep 2005 Messages: 9
|
Posté le : Jeu Sep 22, 2005 11:02 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
Je voulais parler de la maniére de fonctionner du script, pas de la maniére dont il est appellé
A part l'ErrorDocument404 je ne vois pas une autre solution pour integrer le script comme il faudrait
Mais donc la "solution" que j'ai choisie est en rapport avec le fonctionnement du script, là il est inutile de rajouter une condition par page à rediriger, il suffit de faire un copier/coller des directives de réécriture d'un .htaccess "normal" (déstiné au mod_rewrite) dans un autre fichier dont on choisi le nom, on configure le script si il y a besoin, et ensuite le script s'occupe du reste
Donc voilà ^^ (Personne ne l'a encore essayé ?)
Awi, j'oubliais, j'ai mis l'error_reporting à E_ALL, comme ca si il y a une erreur php qui intevient, ca bloque le script, et ca peut etre corrigé rapidement, plutot que de "polluer" les error logs d'apache ^^ |
|
| |
|
 |
Twister WRInaute passionné

Inscrit le: 16 Jan 2004 Messages: 618 Localisation: Lyon
|
Posté le : Jeu Sep 22, 2005 16:35 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
Voici l'erreur obtenue chez moi,
en effet, tu appelles la fonction erreur sans paramètre de langue !
| Code: |
Warning: Missing argument 2 for erreur() in /var/www/free.fr/5/c/lefilasoi/urlrewriting.php on line 229
Warning: Cannot modify header information - headers already sent by (output started at /var/www/free.fr/5/c/lefilasoi/urlrewriting.php:229) in /var/www/free.fr/5/c/lefilasoi/urlrewriting.php on line 236 |
|
|
| |
|
 |
Twister WRInaute passionné

Inscrit le: 16 Jan 2004 Messages: 618 Localisation: Lyon
|
Posté le : Jeu Sep 22, 2005 16:44 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
Une fois ce problème réglé,
avec ce .rewritemod :
| Code: |
RewriteRule ^imprimer-([^.]+)\.no_stat(\.([0-9]+))?$ imprimable.php?page=$1&no_stat=no_stat&res=$3 [L]
RewriteRule ^imprimer-([^.]+)(\.([0-9]+))?$ imprimable.php?page=$1&res=$3 [L]
RewriteRule ^([^.]+)\.no_stat(\.([0-9]+))?$ index.php?page=$1&no_stat=no_stat&res=$3 [L]
RewriteRule ^([^.]+)(\.([0-9]+))?$ index.php?page=$1&res=$3 [L] |
J'obtiens une erreur 404 pour /accueil alors qu'il devrait renvoyer sur /index.php?page=accueil qui existe.
Edit : j'ai essayé d'enlever les ^ au début ou de mettre des / devant les urls mais rien n'y fait... |
|
| |
|
 |
Shisui Nouveau WRInaute
Inscrit le: 21 Sep 2005 Messages: 9
|
Posté le : Jeu Sep 22, 2005 18:46 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
Bon j'ai mis le txt à jour avec l'erreur corrigée (j'ai mis une valeur par défaut dans la définition de la fonction, je l'avais oubliée )
Et quant à ton probléme je ne vois pas de quoi ca peut venir j'ai essayé chez moi avec les 4 RewriteRule, en changeant l'index.php d'e celle qui semble poser probléme par une autre page et en affichant le tableau $_GET de cette page, j'obtient bien ce qu'il faut, et la redirection est bien faite pourtant ? (j'ai testé en local chez moi et chez free et ca fonctionne bien
(J'ai mis à jour le txt et tu peut constater sur le fichier .rewritemod de chez free que ce sont bien tes RewriteRule qui fonctionnent (ici le /accueil) donc ca doit venir de ton coté oO
Merci de t'interesser à ca
*Tilt* en y repensant tu as vérifié d'avoir mit RewriteEngine On dans ton fichier ou d'avoir mit $this->config['ForcerNonVerif'] à TRUE dans la configuration ? (c'est à FALSE par défaut) Pense aussi à bien vérifier le ErrorDocument404 du .htaccess au cas où, sinon je ne vois pas d'ou ca peut venir d'autre  |
|
| |
|
 |
Twister WRInaute passionné

Inscrit le: 16 Jan 2004 Messages: 618 Localisation: Lyon
|
Posté le : Jeu Sep 22, 2005 19:05 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
Ca marche !
J'avais en effet oublié le RewriteEngine On.
Très bon script.
Ca nous ferait presque oublier l'absence d'url rewriting chez free .
En fait, j'ai malheureusement créé un script qui faisait de l'url rewriting sur mon site deux jours avant que tu proposes le tien.
Ca m'aurait fait gagner un peu de temps.
C'est sympa d'utiliser les expressions régulières du .htaccess.
Quelques petites suggestions :
la gestion des langues m'a l'air assez bizarre. Puisque tu utilises la fonction erreur sans paramètre, il n'est pas possible de changer la langue comme ça semblait être prévu au départ.
Proposer de rediriger vers une page personnalisée pour chaque erreur (404...) serait pas mal.
Si des gens sont intéressés et veulent voir le résultat de cet url-rewriting chez free permis par Shisui : -http://lefilasoi.free.fr/test_urlrewriting/accueil
IMPORTANT : le script utilise un include() pour faire une "redirection". Pour éviter des problèmes avec les urls relatives, utilisez des urls absolues dans le .rewritemod.

Dernière édition par Twister le Jeu Sep 22, 2005 19:51; édité 1 fois |
|
| |
|
 |
Twister WRInaute passionné

Inscrit le: 16 Jan 2004 Messages: 618 Localisation: Lyon
|
Posté le : Jeu Sep 22, 2005 19:21 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
OUPS : je me rends compte que ton script affiche bien la page mais renvoie au navigateur une erreur 404 :
| Code: |
GET /test_urlrewriting/accueil HTTP/1.1
Host: lefilasoi.free.fr
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.7.12) Gecko/20050919 Firefox/1.0.7
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: fr-fr,fr;q=0.8,de;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 30
Connection: keep-alive
Cookie: phpmv=de44482cd962ec71bd1a79c62a12b6dd; PHPSESSID=3f9006eb7d50b0faac315b2fa6a50f8f
Authorization: Basic U3lsdmllIENoYWdub246bGVmaWxhc3lsdmll
HTTP/1.x 404 Not Found
Date: Thu, 22 Sep 2005 17:18:54 GMT
Server: Apache/ProXad [Sep 2 2005 07:05:41]
X-Powered-By: PHP/4.3.10
Connection: close
Content-Type: text/html
|
C'est assez inquiétant pour les moteurs de recherche.
J'ai vu que tu a mis un
| Code: |
| header("HTTP/1.0 100 OK"); |
Pourtant ... ça n'a pas l'air de marcher.
Allez, j'arrète de me répondre tout seul... |
|
| |
|
 |
Shisui Nouveau WRInaute
Inscrit le: 21 Sep 2005 Messages: 9
|
Posté le : Ven Sep 23, 2005 18:40 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
Hum c'est embetant ca par contre >< Comment tu fait pour afficher tout les headers comme dans ton post ? (comme ca je vais essayer de trouve rune solution à ca :/)
Quant à la redirection vers des pages spécialisées j'en ai eu l'idée en me rappelant que apache faisait un truc comme ca et en pensant que la façon dont le script gére les 404 laisse peu de choix à çà, donc je suis en train de l'implementer dedans, tout comme la gestion de vraies "404" au cas ou la page n'existe vraiment pas  |
|
| |
|
 |
Twister WRInaute passionné

Inscrit le: 16 Jan 2004 Messages: 618 Localisation: Lyon
|
Posté le : Sam Sep 24, 2005 13:48 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
| Shisui a écrit: |
| Comment tu fait pour afficher tout les headers comme dans ton post ? (comme ca je vais essayer de trouve rune solution à ca :/) |
J'utilise cette extension de firefox :
http://livehttpheaders.mozdev.org/
 |
|
| |
|
 |
Shisui Nouveau WRInaute
Inscrit le: 21 Sep 2005 Messages: 9
|
Posté le : Sam Sep 24, 2005 14:42 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
Argh la providence xD J'avais déjà essayé de trouver une extension comme celle là pour un autre code mais j'en trouvais pas ^^ Merci ^____^
EDIT: J'ai fais quelques test avec ce mod, et apparement ca ne fait ca que chez free :/ (c'est embetant vu que c'est fait pour free ...)
Sur mon serveur local j'obtient bien un header 200 OK :
| Code: |
http://shisui.sytes.net/accueil
GET /accueil HTTP/1.1
Host: shisui.sytes.net
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.7.10) Gecko/20050717 Firefox/1.0.6
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
HTTP/1.x 200 OK
Date: Sat, 24 Sep 2005 12:49:36 GMT
Server: Apache/2.0.54 (Win32) PHP/5.0.4
X-Powered-By: PHP/5.0.4
Content-Length: 46
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
|
Je ne sais pas si ca vient du coté de la configuration du serveur ou alors peut etre de la version d'Apache (free est en apache 1.3 et je suis en apache 2) ou meme de celle de php :/
Je vais essayer de voir du coté du .htaccess pour voir si une option n'est pas disponible pour ca ... |
|
| |
|
 |
wullon WRInaute accro

Inscrit le: 18 Sep 2004 Messages: 3870 Localisation: France
|
Posté le : Sam Sep 24, 2005 15:41 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
Hum, c'est bien ça le problème, le header qui renvoie une erreur 404 :\.
Par contre, si t'arrives à renvoyer un 200, ben c'est vraiment nickel, félicitations . |
|
| |
|
 |
Twister WRInaute passionné

Inscrit le: 16 Jan 2004 Messages: 618 Localisation: Lyon
|
Posté le : Sam Sep 24, 2005 16:04 Sujet du message: Solution pour l'Url rewriting chez Free :D |
|
|
Ne te décourages pas
C'est tout à fait faisable chez free.
La preuve, ce que j'ai fait ( -http://lefilasoi.free.fr/accueil ) renvoie bien un code 200 Ok.
Le problème, c'est que j'ai utilisé la même méthode que toi.
Alors pourquoi ça ne marche pas sur ton script alors que ça marche sur le mien ?
Mystère...
La fin de mon fichier ressemble au tien :
| Code: |
header("HTTP/1.0 100 OK");
include( $adresse_base.$fichier."?page=".$page.$ajout_res.$ajout_stat."&redirection=OK" );
?> |
Edit : ça y est, j'ai vu la différence :
tu dois mettre HTTP/1.0 100 OK
Je ne sais pas pourquoi puisque ça retourne un code 200 mais bon...
ça devrait marcher.
 |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
|
|