Astuce donnée par Ju dans un message sur FluxBB.fr
Cette astuce sert à empêcher la duplication des URL pour un même contenu afin d'obtenir une meilleur indexation par les moteurs de recherche.
Dans le fichier footer.php [TROUVER]
// Close the db connection (and free up any result data) $db->close();
[AVANT, AJOUTER]
/* Début - Empêcher la duplication des adresses */ // URL Rewriting ? $pattern_in = 'viewtopic.php?pid=<PID>'; $pattern_out = 'viewtopic.php?id=<ID>&p=<P>'; // On commence par récupérer les pid de tous les liens qui appellent un message précis preg_quote($pattern_in, '#')).'#', $tpl_main, $pids); $pids = array_unique($pids[1]); if(!empty($pids)) { // On récupére ensuite les id des topics qui correspondent aux différents pid $result = $db->query('SELECT id, topic_id FROM '.$db->prefix.'posts WHERE id='.implode(' OR id=', $pids)) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error()); if (!$db->num_rows($result)) message($lang_common['Bad request']); while ($pid_id = $db->fetch_assoc($result)) { $adresse[$pid_id['id']] = Array('topic_id' => $pid_id['topic_id']); if (isset($query)) $query .= ' OR topic_id='.$pid_id['topic_id']; else $query = $pid_id['topic_id']; } // On récupére et on classe ensuite les pid de tous les posts de tous les topics concernés $result = $db->query('SELECT topic_id, id FROM '.$db->prefix.'posts WHERE topic_id='.$query.' ORDER BY posted') or error('Unable to fetch post info', __FILE__, __LINE__, $db->error()); while ($id_pid = $db->fetch_assoc($result)) $posts[$id_pid['topic_id']][] = $id_pid['id']; // On recherche les pid des liens dans les pid des topics et on récupére la place qu'ils occupent pour calculer leur page foreach ($posts AS $id => $pids) { foreach(array_keys($adresse) AS $pid) { if(($position = array_search($pid, $pids)) !== false) $adresse[$pid]['p'] = ceil(($position + 1) / $pun_user['disp_posts']); } } // On remplace enfin les adresses avec les pid par des adresses uniques et directes avec l'id du topic en précisant la page foreach($adresse AS $pid => $url) $tpl_main = Array($url['topic_id'], $url['p']), $pattern_out)), $tpl_main); } // On en profite pour virer tous les ?p=1 ou &p=1 qui doublonnent aussi inutilement les pages $tpl_main = preg_replace('#(\?|&)p\=1([^0-9]{1})#', '$2', $tpl_main); /* Fin dupplication */