• Configuration de l'affichage du site :
  • Affichage en pleine largeur
  • Affichage en basse résolution (800px)
  • Affichage en texte seul


Référencement :
conseils, outils, actualité, forum
tout ça gratuit !



Vous êtes ici : Analyses » Autres articles » Référencement d'un forum phpBB

Référencement d'un forum phpBB

Imprimer cet article

Par Damien Le Peillet, le 10 Mai 2004

Le terrier enchanté de Lapin Malin
Lapin Malin

Résumé

Cet article rappelle les problèmes d'indexation des forums phpBB, en particulier avec Google, puis donne des solutions simples et précises. N'importe quel webmaster possédant un forum phpBB pourra ainsi avoir toutes les discussions de son forum indexées dans Google.

Cet article est constitué de 3 grandes parties :

  • Les problèmes d'indexation avec phpBB
    • le problème des pages dynamiques
    • Le problème de l'identifiant de session sid
  • Les solutions pour indexer votre forum phpBB
    • Gestion de l'identifiant de session
    • La réécriture des URL
  • Pour finir...
    • Quelques mods utiles
    • Le mot de la fin

2.2 La réécriture des URL

Nous avons vu plus haut que Google n'aimait pas les URL complexes avec plusieurs paramètres . Qu'à cela ne tienne, nous allons donc les réécrire, en language de webmaster, utiliser l'URL REWRITING.
En quoi cela consiste-t-il ? En transformer les URL "à la volée" : c'est-à-dire qu'elles sont modifiées en direct, et non en passant par les fichiers.
Il est donc possible de garder ce bon viewtopic.php et ses paramètres, nous allons simplement le présenter différemment.

L'objectif est de transformer  : http://www.phpbb.com/phpBB/
viewtopic.php?t=154611&start=480

en une url sans paramètres, par exemple topic_154611_480.html. Cette nouvelle URL contient les mêmes informations mais est simplement présentée différemment !
Cela se passe en deux étapes :

Le fichier .htaccess

Ce brave petit va faire croire que ces deux URL sont identiques et renvoyer
http://www.phpbb.com/phpBB/topic_154611_480.html
vers sa vraie destination : http://www.phpbb.com/
phpBB/viewtopic.php?t=154611&start=480

de manière totalement transparente. Pour tous, l'URL sera
http://www.phpbb.com/phpBB/topic_154611_480.html

.

Malheureusement, certains hébergeurs n'autorisent pas les .htaccess, et ceux qui le font peuvent interdire les fonctions dont nous allons avoir besoin.
Si vous êtes sur un hébergement gratuit, vous pouvez arrêter votre lecture, aucun à ma connaissance n'autorise ceci. Vous pouvez trouver sur ce topic une courte liste (non exhaustive) des hébergeurs permettant l'utilisation de cette technique.
Votre hébergeur est dans cette liste ? Passons à la suite alors (S'il n'y figure pas, vous pouvez tenter de mettre un fichier .htaccess à la racine de votre site : si lorsque vous accédez à votre site une erreur 500 apparaît, c'est que votre hébergeur ne gère pas les .htaccess : supprimez le fichier .htaccess).

Que doit comporter ce fichier ? Et bien toutes les règles de réécriture que vous désirez. Sur la plupart des forums que vous rencontrerez, le fichier .htaccess utilisé est tiré de ce post sur phpbb.com, que nous allons également prendre pour référence. Le voici (attention il ne faut aller à la ligne qu'entre deux règles RewriteRule, le reste doit être des espaces) :

RewriteRule ^forums.* index.php

RewriteRule ^mforum([0-9]*).*
viewforum.php?f=$1&mark=topics

RewriteRule ^viewforum([0-9]*)-([0-9]*)-([0-9]*).*
viewforum.php?f=$1&topicdays=$2&start=$3

RewriteRule ^forum([0-9]*).* viewforum.php?f=$1

RewriteRule ^ptopic([0-9]*).*
viewtopic.php?t=$1&view=previous

RewriteRule ^ntopic([0-9]*).*
viewtopic.php?t=$1&view=next

RewriteRule ^stopic([0-9]*)-([0-9]*).*
viewtopic.php?t=$1&watch=topic&start=$2

RewriteRule ^utopic([0-9]*)-([0-9]*).*
viewtopic.php?t=$1&unwatch=topic&start=$2

RewriteRule
^ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).*
viewtopic.php?t=$1&postdays=$2
&postorder=$3&start=$4

RewriteRule ^ftopic([0-9]*)-([0-9]*).*
viewtopic.php?t=$1&start=$2

RewriteRule ^ftopic([0-9]*).* viewtopic.php?t=$1

RewriteRule ^ftopic([0-9]*).html
viewtopic.php?t=$1&start=$2&postdays=$3
&postorder=$4&highlight=$5

RewriteRule ^setopic_([0-9]*)-([a-zA-Z0-9]*).*
viewtopic.php?t=$1&highlight=$2

RewriteRule ^sutra([0-9]*).* viewtopic.php?p=$1

Si vous êtes hébergé par Sivit ou OVH, vous devez utiliser le .htaccess suivant (remplacez /forums/ par le chemin relatif vers votre forum) :

RewriteRule ^forums.* /forums/index.php

RewriteRule ^mforum([0-9]*).*
/forums/viewforum.php?f=$1&mark=topics

RewriteRule ^viewforum([0-9]*)-([0-9]*)-([0-9]*).*
/forums/viewforum.php?f=$1&topicdays=$2&start=$3

RewriteRule ^forum([0-9]*).*
/forums/viewforum.php?f=$1

RewriteRule ^ptopic([0-9]*).*
/forums/viewtopic.php?t=$1&view=previous

RewriteRule ^ntopic([0-9]*).*
/forums/viewtopic.php?t=$1&view=next

RewriteRule ^stopic([0-9]*)-([0-9]*).*
/forums/viewtopic.php?t=$1&watch=topic&start=$2

RewriteRule ^utopic([0-9]*)-([0-9]*).*
/forums/viewtopic.php?t=$1&unwatch=topic&start=$2

RewriteRule
^ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).*
/forums/viewtopic.php?t=$1
&postdays=$2&postorder=$3&start=$4

RewriteRule ^ftopic([0-9]*)-([0-9]*).*
/forums/viewtopic.php?t=$1&start=$2

RewriteRule ^ftopic([0-9]*).*
/forums/viewtopic.php?t=$1

RewriteRule ^ftopic([0-9]*).html
/forums/viewtopic.php?t=$1&start=$2&postdays=$3
&postorder=$4&highlight=$5

RewriteRule ^setopic_([0-9]*)-([a-zA-Z0-9]*).*
/forums/viewtopic.php?t=$1&highlight=$2

RewriteRule ^sutra([0-9]*).*
/forums/viewtopic.php?p=$1

Pour rappel, ce fichier doit se mettre à la racine de votre forum, et non de votre site.

Notes :

  • certaines configurations n'autorisent pas la création d'un fichier nommé .htaccess (car ce n'est qu'une extension), dans ce cas, donnez-lui un autre nom puis renommez-le une fois sur le FTP.
  • pour les personnes possédant leur propre serveur, il est possible d'activer le module mod_rewrite, je conseille la lecture de cette page aux heureux propriétaires.
  • s'il vous est totalement impossible d'utiliser un .htaccess ou le module mod_rewrite d'Apache, vous pouvez tenter d'utiliser cette technique qui affiche les variables comme des sous-répertoires. Attention , ceci est en version béta et n'est pas validée par le groupe phpBB ! Utilisez le à vos risques et périls.

Modifications des fichiers du forum

Maintenant il faut que les liens généres dans les scripts soient du type http://www.phpbb.com/phpBB/topic_154611_480.html ! Sinon cela ne sert à rien de transformer cette URL, puisqu'elle n'est jamais utilisée.
Pour ce faire, il faut cibler les générateurs de pages : includes/page_header.php et includes/page_tail.php.

Voici les modifications à effectuer :

#
#-----[ OUVRIR ]--------------------------------------
#
includes/page_header.php


#
#-----[ TROUVER ]-------------------------------------
#
#

$template->set_filenames(array(
'overall_header' => ( empty($gen_simple_header) )
? 'overall_header.tpl' : 'simple_header.tpl')
);

#
#-----[ APRES, AJOUTER ]------------------------------
#

ob_start();
function replace_mod_rewrite($s)
{
$urlin = array(
"'(?<!/)viewforum.php\?f=([0-9]*)&amp;topicdays=([0-9]*)
&amp;start=([0-9]*)'",
"'(?<!/)viewforum.php\?f=([0-9]*)&amp;mark=topics'",
"'(?<!/)viewforum.php\?f=([0-9]*)'",

"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;view=previous'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;view=next'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;view=newest'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;postdays=([0-9]*)
&amp;postorder=([a-zA-Z]*)&amp;start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;start=([0-9]*)
&amp;postdays=([0-9]*)&amp;postorder=([a-zA-Z]*)
&amp;highlight=([a-zA-Z0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)'",
"'(?<!/)viewtopic.php\?p=([0-9]*)'");

$urlout = array(
"viewforum\\1-\\2-\\3.php",
"mforum\\1.php",
"forum\\1.php",

"ptopic\\1.php",
"ntopic\\1.php",
"newtopic\\1.php",
"ftopic\\1-\\2-\\3-\\4.php",
"ftopic\\1-\\2-\\3-\\4-\\5.php",
"ftopic\\1-\\2.php",
"ftopic\\1.php",
"sutra\\1.php");

$s = preg_replace($urlin, $urlout, $s);

return $s;
}

#
#-----[ OUVRIR ]--------------------------------------
#
includes/page_tail.php

#
#-----[ TROUVER ]-------------------------------------
#
$db->sql_close();

#
#-----[ APRES, AJOUTER ]------------------------------
#

$contents = ob_get_contents();
ob_end_clean();
echo replace_mod_rewrite($contents);
global $dbg_starttime;


#
#-----[ TROUVER ]-------------------------------------
#
$gzip_contents = ob_get_contents();
ob_end_clean();

#
#-----[ APRES, AJOUTER ]------------------------------
#

echo replace_for_mod_rewrite($contents);
global $dbg_starttime;

Voilà, faites maintenant un tour sur votre forum, vos URL ont changé ! Voici un exemple de forum utilisant exactement ces modifications : http://mods.best-dev.com, vous aurez les mêmes URL relatives.

Suite de l'article :

  1. Les problèmes d'indexation avec phpBB
    • le problème des pages dynamiques
    • Le problème de l'identifiant de session sid
  2. Les solutions pour indexer votre forum phpBB
  3. Page suivante Pour finir...
    • Quelques mods utiles
    • Le mot de la fin