PhpBB & URL rewrting: LA solution simple

Discussion dans 'URL Rewriting et .htaccess' créé par Lord Farquaad, 1 Mai 2004.

  1. Lord Farquaad
    Lord Farquaad WRInaute discret
    Inscrit:
    1 Mai 2004
    Messages:
    105
    J'aime reçus:
    0
    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 :)roll:) et le .htaccess bien entendu. Vous l'aurez deviné: c'est très bourrin :roll:

    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 :))
    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é ;-) 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 ? :lol:)

    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 :roll:)

    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 :shock: je me demande quel est le pire :?)

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

    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 ?
     
  2. David@site
    David@site WRInaute occasionnel
    Inscrit:
    14 Janvier 2004
    Messages:
    329
    J'aime reçus:
    0
    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
     
  3. Lord Farquaad
    Lord Farquaad WRInaute discret
    Inscrit:
    1 Mai 2004
    Messages:
    105
    J'aime reçus:
    0
    Merci pour la bienvenue ;-)

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

    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...
     
  4. David@site
    David@site WRInaute occasionnel
    Inscrit:
    14 Janvier 2004
    Messages:
    329
    J'aime reçus:
    0
    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
     
  5. Lord Farquaad
    Lord Farquaad WRInaute discret
    Inscrit:
    1 Mai 2004
    Messages:
    105
    J'aime reçus:
    0
    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 ;-)
     
  6. Lord Farquaad
    Lord Farquaad WRInaute discret
    Inscrit:
    1 Mai 2004
    Messages:
    105
    J'aime reçus:
    0
    TOP ! ;-)

    Bah ça fait presque 4 jours que j'ai posté ce sujet tout de même ;-) et toujours pas d'avis sur ma technique :cry:

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

    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 :roll:
     
  7. Lord Farquaad
    Lord Farquaad WRInaute discret
    Inscrit:
    1 Mai 2004
    Messages:
    105
    J'aime reçus:
    0
    J'ai trouvé un bug dans mon fichier sessions.php, j'ai fait la correction et j'ai édité mon premier message ;-)

    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 "#" ;-) et si on suit le lien on obtient un nouveau sid :roll:

    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 ;-)
     
  8. Dr DLP
    Dr DLP WRInaute impliqué
    Inscrit:
    29 Juin 2003
    Messages:
    527
    J'aime reçus:
    0
    Je trouve ta technique très bonne :)
    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 ....

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

    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 .
     
  9. Lord Farquaad
    Lord Farquaad WRInaute discret
    Inscrit:
    1 Mai 2004
    Messages:
    105
    J'aime reçus:
    0
    Si tu dis qu'indexer plusieurs fois la même page ne pose pas de problème, alors c'est nickel :p

    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 ? :?) Par contre il y a aussi les postorder, le postdays etc. :roll:

    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 :roll:) mais bon, je n'y vais que très rarement parce que j'ai plus trop le temps...
     
  10. Dr DLP
    Dr DLP WRInaute impliqué
    Inscrit:
    29 Juin 2003
    Messages:
    527
    J'aime reçus:
    0
    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 ( :mrgreen: ) Rabbitoshi : https://www.google.fr/search?q=site:www. ... N&filter=0
    65 résultats pour le même topic .
    Plus amusant : https://www.google.fr/search?q=site:www. ... art=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 : https://www.google.fr/search?q=site:www. ... art=0&sa=N
    Pour les posts : 314 résultats : https://www.google.fr/search?hl=fr&ie=UT ... %7Clang_fr

    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 .

    Je t'ai reconnu , Lord Farquaad est le pseudo que tu utilises sur ton forum . Je le change sur phpbb-fr .
     
  11. Lord Farquaad
    Lord Farquaad WRInaute discret
    Inscrit:
    1 Mai 2004
    Messages:
    105
    J'aime reçus:
    0
    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 ;-)

    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] :? 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 ? :?
    Et question: qu'est-ce qui se passe s'il n'y a pas de flag ?

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

    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 ;-)

    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] :), je vais vérifier...
     
  12. milkiway
    milkiway WRInaute accro
    Inscrit:
    3 Février 2004
    Messages:
    4 237
    J'aime reçus:
    0
    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
     
  13. Lord Farquaad
    Lord Farquaad WRInaute discret
    Inscrit:
    1 Mai 2004
    Messages:
    105
    J'aime reçus:
    0
    Moi, je fais confiance au lapin :lol:

    Mais bon, s'il y a besoin d'étudier, ça, je peux toujours voir...
     
  14. Dr DLP
    Dr DLP WRInaute impliqué
    Inscrit:
    29 Juin 2003
    Messages:
    527
    J'aime reçus:
    0
    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 .

    Qu'est ce que tu entends par foireux ?
    C'est entièrement fonctionnel tant quie #var est à la compète fin de l'url .
     
  15. Lord Farquaad
    Lord Farquaad WRInaute discret
    Inscrit:
    1 Mai 2004
    Messages:
    105
    J'aime reçus:
    0
    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 ;-) Je l'ai d'ailleurs déjà installé :).
    Ce qui tombe bien, c'est qu'il modifie le même fichier que moi: sessions.php (logique :roll:)

    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é :roll:
     
  16. Lord Farquaad
    Lord Farquaad WRInaute discret
    Inscrit:
    1 Mai 2004
    Messages:
    105
    J'aime reçus:
    0
    J'ai réussi à réduire de deux lignes le fichier htaccess, il est encore plus simple maintenant,et plus de petits -_- :roll:

    Tout ça grâce à mon htaccess checker :lol:
     
  17. effisk
    effisk WRInaute occasionnel
    Inscrit:
    18 Juin 2004
    Messages:
    497
    J'aime reçus:
    0
    Tout cela a l'air bien pratique, mais je conseille aux gens que ça intéresse de vérifier que leur serveur accepte l'url rewriting.
    Si vous vous en rendez compte après vous être tapé toutes les modifs, ça craint un peu... :roll:
     
  18. dcz
    dcz WRInaute impliqué
    Inscrit:
    2 Mars 2005
    Messages:
    668
    J'aime reçus:
    0
  19. paranoise
    paranoise WRInaute discret
    Inscrit:
    30 Juin 2005
    Messages:
    67
    J'aime reçus:
    0
    snif j'y arrive pas a appliquer ta methode a chaque fois que j'essaye de rentrer dans un salon de mon forum il affiche l'adresse de la page sous la forme xxx1_10.html mais dit "page introuve http error 404"
     
  20. effisk
    effisk WRInaute occasionnel
    Inscrit:
    18 Juin 2004
    Messages:
    497
    J'aime reçus:
    0
    Bah évidemment, il inclut dans l'url l'id de la session...
     
  21. effisk
    effisk WRInaute occasionnel
    Inscrit:
    18 Juin 2004
    Messages:
    497
    J'aime reçus:
    0
    ah tiens non, pas toujours. Curieux.

    Qu'as tu dans ton fichier htaccess ?
     
  22. paranoise
    paranoise WRInaute discret
    Inscrit:
    30 Juin 2005
    Messages:
    67
    J'aime reçus:
    0
    ok mais pkoi il affiche pas la page? en fait j'ai remi une version qui marche dans l'htaccess y'avait
     
  23. paranoise
    paranoise WRInaute discret
    Inscrit:
    30 Juin 2005
    Messages:
    67
    J'aime reçus:
    0
  24. paranoise
    paranoise WRInaute discret
    Inscrit:
    30 Juin 2005
    Messages:
    67
    J'aime reçus:
    0
    par contre je n'ai pas la variable global $phpEx qui est presente dans la 1ere ligne de code à remplacer... Ce n'est pas grave?
     
Chargement...
Similar Threads - PhpBB rewrting solution Forum Date
Ne pas mettre à jour forum Phpbb Administration d'un site Web 19 Février 2020
Phpbb et app.php et RSS ? Débuter en référencement 17 Février 2020
Rediriger sujet phpBB3 vers Vanilla 3 URL Rewriting et .htaccess 6 Août 2019
Gérer le passage de forumactif à phpbb Référencement Google 19 Janvier 2019
Probleme forum phpbb seo Développement d'un site Web ou d'une appli mobile 30 Septembre 2018
Quelle solution de forum utiliser pour migration phpbbseo ? Demandes d'avis et de conseils sur vos sites 11 Mars 2018
Problème images en https (forum phpbb) [résolu] Développement d'un site Web ou d'une appli mobile 18 Novembre 2017
Migration forum phpbb vers vanilla 2 URL Rewriting et .htaccess 15 Février 2016
Optimiser le code d'un forum phpbb Problèmes de référencement spécifiques à vos sites 12 Juin 2015
Faire héberger en externe un vieux forum phpBB, possible ? Administration d'un site Web 9 Avril 2015
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice