Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

PhpBB & URL rewrting: LA solution simple

Aller à la page 1, 2  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> URL Rewriting et .htaccess   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
Lord Farquaad
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Mai 2004
Messages: 124

URL permanente de ce messagePosté le : Sam Mai 01, 2004 4:46    Sujet du message: PhpBB & URL rewrting: LA solution simple

Voilà j'avais pas envie de me crever à modifier pleins de fichiers, et je me suis construit ma ptite solution perso pour réécrire toutes les urls de mon forum, et il n'y a que deux fichiers à modifier: includes/sessions.php (Rolling Eyes) et le .htaccess bien entendu. Vous l'aurez deviné: c'est très bourrin Rolling Eyes

Ce système ne pose aucun problème avec le panneau d'administration
(les urls sont modifiées aussi, mais l'.htaccess reformera le bon nom de fichier ensuite Smile)
Temps d'installation: ~2 minutes

Il est conseillé d'installer le mod qui désactive les sessions pour les inivités, vous pourrez le trouver ici (laissez sessions.php ouvert après l'avoir installé Wink Vous pouvez installer ce mod-là et celui-ci dans l'ordre que vous voulez.)

Pour commencer, les modifs:
Ouvrir includes/sessions.php
Trouver
Code:
function append_sid($url, $non_html_amp = false)
{
   global $SID, $phpEx;

ajouter après
Code:
   if(strpos($url, '#')){
      $url2 = explode('#', $url);
      $url = $url2[0];
      $url2[1] = '#' . $url2[1];
   } else {
      $url2 = array($url,'');
   }

Trouver
Code:
if ( !empty($SID) && !preg_match('#sid=#', $url) )
Remplacer par
Code:
if ( !empty($SID) && !preg_match('#sid__#', $url) )

Trouver
Code:
   return($url);
}

?>
Ajouter avant
Code:
   $url = str_replace(array('?','&', '&', '=', '.'.$phpEx), array('.', '-', '-', '__', ''), $url);
   $url.= '.html' . $url2[1]


Ouvrir /.htaccess:
Code:
RewriteEngine on
RewriteRule ^([^\.]+)\.html$  $1.php  [L]
RewriteRule ^([^\.]+)\.([^_\-]+|[^_\-]+_[^_\-]+)__([^\-]*)\.html$  $1.php?$2=$3&  [L,qsa]
RewriteRule ^([^\.]+)\.([^_\-]+|[^_\-]+_[^_\-]+)__([^\-]*)-(.+)\.html$  $1.$4.html?$2=$3& [n,qsa]
(jolis hein mes p'tis chinois ? Laughing)

Bref: append_sid() prend l'url donnée, ajoute un sid si nécessaire, lui supprime l'extension .php, lui remplace le "?" par un ".", les "&" par des "-" et les "=" par des "__" (fallait faire gaffe aux search_id Rolling Eyes)

Par exemple:
Code:
http://www.notredomaine.net/memberlist.php?mode=posts&order=DESC&start=50

Devient
Code:
http://www.notredomaine.net/memberlist.mode__posts-order__DESC-start__50.html
Facile hein ?

Oui mais cette solution va aussi ajouter dans l'url "-sid__id_de_la_session", et du coup, on a la "faille" sid dont j'ai lu quelques infos à ce propos... c'est vraiment grave docteur ?

Bon en fait je m'apperçois qu'il y a longtemps, j'avais modifié append_sid(), pour contenter google et un autre bot, de la façon suivante:
Code:
    global $SID, $HTTP_SERVER_VARS, $phpEx;

   if ( !empty($SID) && !eregi('sid=', $url) && !strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') && !strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'slurp@inktomi.com;'))
   {
      $url .= ( ( strpos($url, '?') != false ) ?  ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID;
   }

...
(tiens, un truc à modifier là, avec mon système: plus bon le 'sid='...)
Donc ça fachera pas trop google (par contre la table des sessions elle doit s'en prendre un coup quand google passe: à chaque page vu une nouvelle est créée logiquement Shocked je me demande quel est le pire Confused)

Semi-autre question:
Dans phpbb, un message est accessible de deux façons: soit son id de message, soit l'id du sujet et la page du message. Sachant qu'il y a x messages par page de sujet aximum, cela fait que google doit indexer x+1 fois la même page, je me trompe ? Mauvais ça si on veut pas se faire blacklisté Confused Et impossible de faire de l'url rewriting avec ma solution...

Solution possible: la page qui renvoie le plus à des viewtopic.php?p=message_id, c'est search.php (?search_id=unanswered surtout pour les bots...) vous croyez qu'on meta robots noindex,nofollow serait suffisant ?


Dernière édition par Lord Farquaad le Sam Mai 08, 2004 16:01; édité 10 fois
 
Lord Farquaad Visiter le site web du posteur
David@site
WRInaute impliqué
WRInaute impliqué

Inscrit le: 14 Jan 2004
Messages: 382
Localisation: France

URL permanente de ce messagePosté le : Sam Mai 01, 2004 9:54    Sujet du message: PhpBB & URL rewrting: LA solution simple

Salut Lord Farquaad et bienvenue sur WRI,

pour le pb d'url rewrite je peux pas d'aider la mais pour la faille php je peux, voici un article sur cette faille: http://www.phpsecure.info/v2/.php?zone=pComment&d=1057322922 ne sont concerne que les versions inferieur a la 4.3.2(ca doit etre une minorite de personne), et meme pour ceux-la il y a une parade si vous avez acces a votre php.ini Plus de details dans l'article.

voila donc pas de panique c'est raisorbable.

@+
David
 
David@site Visiter le site web du posteur
Lord Farquaad
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Mai 2004
Messages: 124

URL permanente de ce messagePosté le : Sam Mai 01, 2004 12:57    Sujet du message: PhpBB & URL rewrting: LA solution simple

Merci pour la bienvenue Wink

Non si j'ai bien compris, la "faille" sid quand on parle d'URL rewriting c'est que le sid soit compris dans l'adresse de la page, et comme les moteurs de recherches utilisent souvent plusieurs bots simultanément pour visiter les pages, chaque bot obtient un sid différent, et du coup il visite les mêmes pages que tous les autres en croyant que les urls sont différentes, donc il visite toutes les pages...

Logiquement ceci ne se produit qui lorsque les bots ont chacun leur propre adresse IP, puisque sinon le premier bot visite l'index, obtient des urls avec un même sid et communique ces urls aux autres bots afin de commencer l'indexage... enfin, je suppose que c'est comme ça du moins Rolling Eyes

L'inconvéniant c'est que si on laisse un visiteur se promener sans sid, à chaque page il en obtiendra un nouveau, qui sera stocké dans la table des sessions, et ça va faire beaucoup s'il visite tout !

Je vais essayer de trouver une modification correcte de session.php pour éviter ce problème, afin que les bots n'aient pas besoin de sid...
 
Lord Farquaad Visiter le site web du posteur
David@site
WRInaute impliqué
WRInaute impliqué

Inscrit le: 14 Jan 2004
Messages: 382
Localisation: France

URL permanente de ce messagePosté le : Sam Mai 01, 2004 14:55    Sujet du message: PhpBB & URL rewrting: LA solution simple

On doit pas parler de la meme faille, moi je parlais d'une faille qui permet d'injecter du code javascript ds les sid ce qui permet par exemple a un utilisateur mal intentionne de detourner des mots de passe etc....
Toi ds ton cas il faudrait mieux que les bots n'est pas de sid attribue ainsi ca t'eviterai de surcharger ta base
 
David@site Visiter le site web du posteur
Lord Farquaad
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Mai 2004
Messages: 124

URL permanente de ce messagePosté le : Sam Mai 01, 2004 23:40    Sujet du message: PhpBB & URL rewrting: LA solution simple

Ben ouais... j'attends l'avis des autres parce que j'aimerais savoir combien de sid différents auraient les bots si je leur en donne un...

Et puis j'aimerais leur avis sur tout le reste de ce que j'ai dit aussi Wink
 
Lord Farquaad Visiter le site web du posteur
Lord Farquaad
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Mai 2004
Messages: 124

URL permanente de ce messagePosté le : Mar Mai 04, 2004 23:40    Sujet du message: PhpBB & URL rewrting: LA solution simple

TOP ! Wink

Bah ça fait presque 4 jours que j'ai posté ce sujet tout de même Wink et toujours pas d'avis sur ma technique Crying or Very sad

Au fait j'ai remarqué que mon session.php avait été plus modifié que ce que je ne l'avais dit pour google (ça fait longtemps, je ne m'en souvenais plus...), et donc qu'il n'y avait qu'une seule session utilisée pour googlebot Smile

Enfin, je compte quand même faire un système qui gèrera tous les bots que l'on veut, en faisant confiance à l'ip et non au user agent Rolling Eyes
 
Lord Farquaad Visiter le site web du posteur
Lord Farquaad
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Mai 2004
Messages: 124

URL permanente de ce messagePosté le : Mer Mai 05, 2004 20:44    Sujet du message: PhpBB & URL rewrting: LA solution simple

J'ai trouvé un bug dans mon fichier sessions.php, j'ai fait la correction et j'ai édité mon premier message Wink

Sachez que se bug est présent aussi sur le forum de WRI, pour le voir il faut désactiver les cookies puis aller sur l'index du forum, et dans la colonne "derniers messages", regarder le lien qui mène vers le dernier message du dernier sujet, il y a un problème avec le "#" Wink et si on suit le lien on obtient un nouveau sid Rolling Eyes

Edit: apparemment un vieu bug de phpBB d'ailleurs, il était déjà corrigé dans la 2.0.6...

Au fait, ce post serait peut-être mieux dans "Tests et étude de cas" ? Aucune idée... enfin pour moi ce qui compte c'est d'avoir votre avis Wink
 
Lord Farquaad Visiter le site web du posteur
Dr DLP
WRInaute passionné
WRInaute passionné

Inscrit le: 29 Juin 2003
Messages: 575
Localisation: Dans mon terrier

URL permanente de ce messagePosté le : Mer Mai 05, 2004 21:17    Sujet du message: PhpBB & URL rewrting: LA solution simple

Je trouve ta technique très bonne Smile
Elle fonctionne surement très bien avec un phpbb de base , mais cela doit poser plus de problèmes avec un phpbb moddé . De nombreux mods ne suivent pas les standards qui veulent que l'on utilise append_sid() pour tous les liens vers le forum : dans ces cas là ta modif ne fonctionne pas .
Pas trop d'importance à mon avis , puisque le sid n'est pas généré dans ce cas ....

Citation:
Semi-autre question:
Dans phpbb, un message est accessible de deux façons: soit son id de message, soit l'id du sujet et la page du message. Sachant qu'il y a x messages par page de sujet aximum, cela fait que google doit indexer x+1 fois la même page, je me trompe ? Mauvais ça si on veut pas se faire blacklisté Et impossible de faire de l'url rewriting avec ma solution...

Sans compter la possibilité next/previous dans les posts et les topics . Sur un phpbb de base , il y a 6 url différentes pour un post , plus les possiblités de tri , et l'option "voir dernier post" , caractérisée par le paramère ( p=post#post ) .
Et pourtant les forums phpbb sont référencées dans Google , il ne sont pas blacklistés , alors que phpb.com compte plus de 100.000 pages référencés pour son forum , incluant ses différentes URL .
Pas d'inquiétude pour ma part à ce niveau .
J'utilise l'URL rewriting , ce qui porte vers les 15 les url différentes amenant au même sujet , et pour l'instant ( même si je m'inquiète un peu ) , aucun problème de "duplicate content" .

Citation:
Logiquement ceci ne se produit qui lorsque les bots ont chacun leur propre adresse IP, puisque sinon le premier bot visite l'index, obtient des urls avec un même sid et communique ces urls aux autres bots afin de commencer l'indexage... enfin, je suppose que c'est comme ça du moins

C'est pour ça que j'utilise ce mod : http://www.phpbb.com/phpBB/viewtopic.php?t=185839
Il régle aussi d'autres problèmes liés au référencement .
 
Dr DLP Visiter le site web du posteur
Lord Farquaad
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Mai 2004
Messages: 124

URL permanente de ce messagePosté le : Mer Mai 05, 2004 21:56    Sujet du message: PhpBB & URL rewrting: LA solution simple

Si tu dis qu'indexer plusieurs fois la même page ne pose pas de problème, alors c'est nickel Razz

Au fait: les boutons précédents et suivant ne génèrent pas de nouvelles urls dans phpBB (à moins que ça ait changé dans les dernières versions ? Confused) Par contre il y a aussi les postorder, le postdays etc. Rolling Eyes

Merci pour le mod que tu proposes, je vais installer ça directement arès avoir comparé mon sessions.php avec celui de la 2.0.8 (ce doit être un des fichiers qui a le moins varié au cours des versions, mais je l'ai ptet moddé... déjà j'ai le truc pour google...)

Au fait Doc, sur phpBB-fr je "Le nain connu" (on peut pas changer de pseudo Rolling Eyes) mais bon, je n'y vais que très rarement parce que j'ai plus trop le temps...
 
Lord Farquaad Visiter le site web du posteur
Dr DLP
WRInaute passionné
WRInaute passionné

Inscrit le: 29 Juin 2003
Messages: 575
Localisation: Dans mon terrier

URL permanente de ce messagePosté le : Mer Mai 05, 2004 22:17    Sujet du message: PhpBB & URL rewrting: LA solution simple

Cela génère pas réellement de nouvelle url , puisque c'est un ajout de paramètres .
Néanmoins c'est une url différente .
A titre indicatif , voici les pages référencées sur phpbb.com pour le merveilleux mod ( Mr. Green ) Rabbitoshi : http://www.google.fr/search?q=site:www.phpbb.com+%5Bsubmitted%5Drabbitoshi&hl=fr...|lang_fr&ie=UTF-8&oe=UTF-8&c2coff=1&start=0&sa=N&filter=0
65 résultats pour le même topic .
Plus amusant : http://www.google.fr/search?q=site:www.phpbb.com+viewtopic.php%3Ft%3D154611&hl=f...|lang_fr&ie=UTF-8&oe=UTF-8&c2coff=1&start=0&sa=N . 13 résultats pour la recherche du topic sur Google , incluant un view=previous .

Pour le topic d'ADR , 35 résultats : http://www.google.fr/search?q=site:www.phpbb.com+viewtopic.php%3Ft%3D177077&hl=f...|lang_fr&ie=UTF-8&oe=UTF-8&c2coff=1&start=0&sa=N
Pour les posts : 314 résultats : http://www.google.fr/search?hl=fr&ie=UTF-8&oe=UTF-8&c2coff=1&q=site%3Awww.phpbb....

Je ne m'inquiète pas trop donc .... Evidemment il faut voir que le forum de phpbb.Com a un PR de 9 , beaucoup de ces pages sont indéxées . Pour nous , il n'y aura jamais plus de 10 résultats ( URL rewrtiing compris ) pour un topic .

Citation:
Au fait Doc, sur phpBB-fr je "Le nain connu" (on peut pas changer de pseudo ) mais bon, je n'y vais que très rarement parce que j'ai plus trop le temps...

Je t'ai reconnu , Lord Farquaad est le pseudo que tu utilises sur ton forum . Je le change sur phpbb-fr .
 
Dr DLP Visiter le site web du posteur
Lord Farquaad
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Mai 2004
Messages: 124

URL permanente de ce messagePosté le : Mer Mai 05, 2004 22:52    Sujet du message: PhpBB & URL rewrting: LA solution simple

Pour les boutons précédents et suivants: ah oui tu parles de ceux pour voir les sujets suivants et précédents, mais ça ne mène que vers la première page du sujet, pas vers toutes les autres Wink

Au fait t'as pas une explication pour le [N] dans mon .htaccess ? J'avais simulé le truc avec un [C] en php, et ça marchait sans problème avec 4 paramètres, pourtant là je suis obligé de mettre un [N] Confused J'ai l'impression de ne pas bien comprendre le [C], cela signifie pourtant bien vérifier la condition et continuer le rewriting, en passant les [C] si rien n'a été modifié, non ? Confused
Et question: qu'est-ce qui se passe s'il n'y a pas de flag ?

Merci pour le pseudo sur phpbb-fr Smile Je verrai ça la prochaine fois que j'irai (peut-être pas avant des mois Rolling Eyes)

Edit:
au fait, j'ai oublié de le dire mais mon système ne pose aucun problème avec le paneau d'administration !!!

Edit 2:
J'ai encore modifié ma fonction append_sid pour qu'elle évite les urls du genre
Code:
viewtopic.php?t=xy#xy&sid=add189efae1fe98da1d98fd
(dans les anciennes distributions de phpBB) et qui devenaient
Code:
viewtopic.t__xy#xy-sid__add189efae1fe98da1d98fd.html
avec la technique de départ et
Code:
viewtopic.t__xy.html#xy&sid=add189efae1fe98da1d98fd
avec la première correction.
Maintenant ça fera:
Code:
viewtopic.t__xy-sid__add189efae1fe98da1d98fd.html#xy
ce qui est correct Wink

A noter que même dans la dernière version de phpBB, passer des urls contenant des '#' (indiquant où le navigateur doit se placer dans la page) à append_sid() est foireux... La correction que les programmeurs ont faite consistait à s'assurer qu'aucune '#' ne lui était passés... (problème lors des redirections du type viewtopic.php?t=xy&view=newest dans les anciennes distributions)

Edit 3: ah j'ai compris un peu mieux l'histoire du premier [N] qui ne marche pas si c'est [C], en fait je peux simplement enlever ce [N] Smile, je vais vérifier...
 
Lord Farquaad Visiter le site web du posteur
milkiway
WRInaute accro
WRInaute accro

Inscrit le: 03 Fév 2004
Messages: 1949
Localisation: Venigo

URL permanente de ce messagePosté le : Ven Mai 07, 2004 1:02    Sujet du message: PhpBB & URL rewrting: LA solution simple

heu vous êtes sur que ça ne pose pas de problème 6 pages référencées avec le même contenu ? Par ce que je commence à me poser des questions
 
milkiway Visiter le site web du posteur
Lord Farquaad
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Mai 2004
Messages: 124

URL permanente de ce messagePosté le : Ven Mai 07, 2004 1:21    Sujet du message: PhpBB & URL rewrting: LA solution simple

Moi, je fais confiance au lapin Laughing

Mais bon, s'il y a besoin d'étudier, ça, je peux toujours voir...
 
Lord Farquaad Visiter le site web du posteur
Dr DLP
WRInaute passionné
WRInaute passionné

Inscrit le: 29 Juin 2003
Messages: 575
Localisation: Dans mon terrier

URL permanente de ce messagePosté le : Ven Mai 07, 2004 14:14    Sujet du message: PhpBB & URL rewrting: LA solution simple

Lord Farquaad a écrit:
Edit 2:
J'ai encore modifié ma fonction append_sid pour qu'elle évite les urls du genre
Code:
viewtopic.php?t=xy#xy&sid=add189efae1fe98da1d98fd
(dans les anciennes distributions de phpBB) et qui devenaient
Code:
viewtopic.t__xy#xy-sid__add189efae1fe98da1d98fd.html
avec la technique de départ et
Code:
viewtopic.t__xy.html#xy&sid=add189efae1fe98da1d98fd
avec la première correction.
Maintenant ça fera:
Code:
viewtopic.t__xy-sid__add189efae1fe98da1d98fd.html#xy
ce qui est correct Wink

Si les googlebots lisent ces pages , tu vas te retrouver avec plus de 1.000.000 différentes pour un même sujet ... Là ça doit être moins apprécié !
Même pour tes utilisateurs , il se pose le problème des liens faits dans les posts : les liens contenant un sid conduiront le plus souvent à une session invalide s'ils sont utlisés par d'autres personnes ou lors d'une session ultérieure .

Citation:
A noter que même dans la dernière version de phpBB, passer des urls contenant des '#' (indiquant où le navigateur doit se placer dans la page) à append_sid() est foireux... La correction que les programmeurs ont faite consistait à s'assurer qu'aucune '#' ne lui était passés... (problème lors des redirections du type viewtopic.php?t=xy&view=newest dans les anciennes distributions)

Qu'est ce que tu entends par foireux ?
C'est entièrement fonctionnel tant quie #var est à la compète fin de l'url .
 
Dr DLP Visiter le site web du posteur
Lord Farquaad
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Mai 2004
Messages: 124

URL permanente de ce messagePosté le : Ven Mai 07, 2004 19:10    Sujet du message: PhpBB & URL rewrting: LA solution simple

Pour les sid: en effet, ça j'avais bien compris, donc je conseille le mod que tu m'as proposé pour éviter que les invités aient un identifiant de session dans les urls Wink Je l'ai d'ailleurs déjà installé Smile.
Ce qui tombe bien, c'est qu'il modifie le même fichier que moi: sessions.php (logique Rolling Eyes)

J'entends par foireux la première URL que tu recopies dans la citation: normalement le sid est perdu de cette façon ! La fonction append_sid ne se soucie pas qu'il y ait des '#' dans les urls, or normalement Apache coupe les urls à partir de ce '#' (puisque ce sont des infos qui ne servent à rien...)

Tu n'as qu'à tester sur ce forum-ci: tu désactives les cookies, tu te reconnectes, tu te rends sur l'index et tu cliques sur le lien '>>' (dernier message) d'un forum... normalement tu seras déloggé Rolling Eyes
 
Lord Farquaad Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> URL Rewriting et .htaccess Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 2 - Aller à la page 1, 2  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort