Solution pour l'Url rewriting chez Free :D
33 messages • Page 1 sur 3 • 1, 2, 3
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
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
Précision : ca n'est pas le meme genre de script que celui déjà présenté sur ce forum
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
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]
Note: c'est coloré maintenant, emrci twister
La source
Si quelqu'un a des critiques à faire sur le code je suis ouvert aussi
Dernière édition par Shisui le Sam Sep 24, 2005 18:00, édité 1 fois.
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...

Quelle est la différence ?
Sinon, très bonne initiative, j'essaierais de la mettre en place dés que je pourrais...
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 ^^
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 ^^
Voici l'erreur obtenue chez moi,
en effet, tu appelles la fonction erreur sans paramètre de langue !
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
Une fois ce problème réglé,
avec ce .rewritemod :
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...
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...
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
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
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.

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
Dernière édition par Twister le Jeu Sep 22, 2005 18:51, édité 1 fois.
OUPS : je me rends compte que ton script affiche bien la page mais renvoie au navigateur une erreur 404 :
C'est assez inquiétant pour les moteurs de recherche.
J'ai vu que tu a mis un
Pourtant ... ça n'a pas l'air de marcher.
Allez, j'arrète de me répondre tout seul...
- 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...
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
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
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/
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 :
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 ...
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 ...
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 :
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.

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" );
?>
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.
33 messages • Page 1 sur 3 • 1, 2, 3
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 :
- Optimiser le référencement d'un forum phpBB : réécriture d'URL
- Tutoriel URL Rewriting
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- l'URL Rewriting expliqué aux débutants
- 3ème partie de l'article .htaccess : les réécritures conditionnelles
- Votre site est mal référencé ? Voilà les remèdes !
- L'URL Rewriting expliqué aux débutants
- Protégez-vous contre le nofollow
- Référencement : le problème des sessions des pages PHP
- Comment éviter les contenus dupliqués (avec/sans le www)
- URL Rewriting chez Free (2) : la solution sans .htaccess
- url rewriting chez free... Peut-être une solution...
- Solution parrallele au URL Rewriting
- Url rewriting : quelle solution choisir ?
- URL rewriting est-il la bonne solution
- URL Rewriting et forums Invision Board : une solution ?
- url rewriting + titres pour phpbb v2 : solution globale
- URL-rewriting pour phpBB, une nouvelle solution !
- url rewriting et free...
- url rewriting encore chez free !
- URL rewriting pour phpBB sur Free besoin d'aide
- URL Rewriting chez Free + PHPBB : je ne m'en sort pas...
- URL REWRITING et REQUEST_URI problem chez Online.net et Free
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



le forum