Solution pour l'Url rewriting chez Free :D

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

Shisui
Nouveau WRInaute
 
Messages: 9
Inscription: Mer Sep 21, 2005 15:58

Solution pour l'Url rewriting chez Free :D

Message le Mer Sep 21, 2005 16:18

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 :x

Précision : ca n'est pas le meme genre de script que celui déjà présenté sur ce forum :roll: 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] :x) 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 :x


wullon
WRInaute accro
WRInaute accro
 
Messages: 3914
Inscription: Sam Sep 18, 2004 15:06

Message le Mer Sep 21, 2005 17:41

Met la source sur un hébergeur distant (dans un .txt par exemple ^^).

Shisui
Nouveau WRInaute
 
Messages: 9
Inscription: Mer Sep 21, 2005 15:58

Message le Mer Sep 21, 2005 17:46

Bof, je l'avais pas mise parceque free accepte pas les sources php donc bon :/
Note: c'est coloré maintenant, emrci twister :D
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 18:00, édité 1 fois.


Twister
WRInaute passionné
WRInaute passionné
 
Messages: 619
Inscription: Ven Jan 16, 2004 14:37

Message le Mer Sep 21, 2005 18:11

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...

:wink:

Shisui
Nouveau WRInaute
 
Messages: 9
Inscription: Mer Sep 21, 2005 15:58

Message le Jeu Sep 22, 2005 10:02

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é
WRInaute passionné
 
Messages: 619
Inscription: Ven Jan 16, 2004 14:37

Message le Jeu Sep 22, 2005 15:35

Voici l'erreur obtenue chez moi,
en effet, tu appelles la fonction erreur sans paramètre de langue !


Code: Tout sélectionner
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é
WRInaute passionné
 
Messages: 619
Inscription: Ven Jan 16, 2004 14:37

Message le Jeu Sep 22, 2005 15:44

Une fois ce problème réglé,
avec ce .rewritemod :
Code: Tout sélectionner
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
 
Messages: 9
Inscription: Mer Sep 21, 2005 15:58

Message le Jeu Sep 22, 2005 17:46

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 :x)
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 8O

(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 :x


Twister
WRInaute passionné
WRInaute passionné
 
Messages: 619
Inscription: Ven Jan 16, 2004 14:37

Message le Jeu Sep 22, 2005 18:05

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 :wink: .
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.
:wink:
Dernière édition par Twister le Jeu Sep 22, 2005 18:51, édité 1 fois.


Twister
WRInaute passionné
WRInaute passionné
 
Messages: 619
Inscription: Ven Jan 16, 2004 14:37

Message le Jeu Sep 22, 2005 18:21

OUPS : je me rends compte que ton script affiche bien la page mais renvoie au navigateur une erreur 404 :

Code: Tout sélectionner
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: Tout sélectionner
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
 
Messages: 9
Inscription: Mer Sep 21, 2005 15:58

Message le Ven Sep 23, 2005 17:40

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é
WRInaute passionné
 
Messages: 619
Inscription: Ven Jan 16, 2004 14:37

Message le Sam Sep 24, 2005 12:48

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/

:wink:

Shisui
Nouveau WRInaute
 
Messages: 9
Inscription: Mer Sep 21, 2005 15:58

Message le Sam Sep 24, 2005 13:42

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: Tout sélectionner
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
WRInaute accro
 
Messages: 3914
Inscription: Sam Sep 18, 2004 15:06

Message le Sam Sep 24, 2005 14:41

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é
WRInaute passionné
 
Messages: 619
Inscription: Ven Jan 16, 2004 14:37

Message le Sam Sep 24, 2005 15:04

Ne te décourages pas :D
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: Tout sélectionner
header("HTTP/1.0 100 OK");
include( $adresse_base.$fichier."?page=".$page.$ajout_res.$ajout_stat."&redirection=OK" );
?>


:roll:

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.
:D

Solution pour l'Url rewriting chez Free :D

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Gulp

  • Analyse des backlinks
    Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
  • Recherche de citations d'un site en texte brut
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités