URL Rewriting sur un forum IPB : Problème au niveau du code

Nouveau WRInaute
Salut à tous :)

J'aimerais beaucoup utiliser la réecriture d'URL sur un forum IPB. J'ai des problèmes pour modifier le code des pages PHP afin qu'elles utilisent l'URL réecrite. Je précise juste que c'est pour des adresses plus "nettes" et non pour l'indexation Google puisqu'il paraît que la version 1.3.1 d'IPB est parfaitement "indexable".

Voici un exemple de règle que j'ai écris dans le .htaccess :
Code:
RewriteRule   ^IPB/forum([0-9]+)\.htm$   IPB/index.php?showforum=$1  [L]

Cette règle fonctionne, si je tape

Code:
http://incognitro.celeonet.fr/IPB/forum1.htm

cela équivaut à

Code:
http://incognitro.celeonet.fr/IPB/index.php?showforum=1

Il y a tout de même un problème :( je suis perdu dans le code PHP des pages et je ne sais pas comment je dois les modifier pour qu'elles utilisent les adresses réecrites.

Je crois que la modification se fait dans cette partie du code, mais je ne suis pas sûr.

Exemple pour la page index.php
Code:
//--------------------------------
//  Set up the session ID stuff
//--------------------------------

if ( $ibforums->session_type == 'cookie' )
{
	$ibforums->session_id = "";
	$ibforums->base_url   = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?';
}
else
{
	$ibforums->base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id.'&';
}

$ibforums->js_base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id.'&';

Pouvez-vous m'expliquer comment utiliser l'adresse rewritée du .htaccess si-dessus ?

Merci beaucoup !
 
WRInaute discret
Je te conseil de créer un fichier du type "reecriture.php"

Dedans tu va uiliser, par exemple la fonction
function replace_for_mod_rewrite(&$s)
{
$urlin = array(
//Forum IPBoard
//"'(?<!/\/)modules/ipboard/\"'",
//"'(?<!/\/)modules/ipboard/index.php\?s=([a-zA-Z0-9+]*)&amp;showforum=([0-9]*)\"'",
//"'(?<!/\/)modules/ipboard/index.php\?s=([a-zA-Z0-9+]*)&amp;showforum=([0-9]*)\''",
//"'(?<!/\/)modules/ipboard/index.php\?s=([a-zA-Z0-9+]*)&amp;showtopic=([0-9]*)\"'",
//"'(?<!/\/)modules/ipboard/index.php\?s=([a-zA-Z0-9+]*)&amp;showtopic=([0-9]*)\''",
//"'(?<!/\/)modules/ipboard/index.php\?showtopic=([0-9]*)'",
//"'(?<!/\/)modules/ipboard/index.php\?s=([a-zA-Z0-9+]*)&amp;showforum=([0-9]*)&amp;prune_day=([0-9]*)&amp;sort_by=([\-_a-zA-Z0-9+]*)&amp;sort_key=([\-_a-zA-Z0-9+]*)&amp;st=([0-9]*)'",
//"'(?<!/\/)modules/ipboard/index.php\?s=([a-zA-Z0-9+]*)&amp;act=idx'",
//"'(?<!/\/)modules/ipboard/index.php\?s=([a-zA-Z0-9+]*)&amp;c=([0-9]*)'",
//"'(?<!/\/)modules/ipboard/index.php\?s=([a-zA-Z0-9+]*)&amp;showtopic=([0-9]*)&amp;view=getnewpost'",
//"'(?<!/\/)modules/ipboard/index.php\?s=([a-zA-Z0-9+]*)&amp;showtopic=([0-9]*)&amp;view=getlastpost'",
//"'(?<!/\/)modules/ipboard/index.php\?s=([a-zA-Z0-9+]*)&amp;act=([\-_a-zA-Z0-9+]*)&amp;c=([0-9]*)'",
//"'(?<!/\/)modules/ipboard/index.php\?s=([a-zA-Z0-9+]*)&amp;showtopic=([0-9]*)&amp;st=([0-9]*)'",
//"'(?<!/\/)modules/ipboard/index.php\?act=([\-_a-zA-Z0-9+]*)&f=([0-9]*)&t=([0-9]*)&s=([a-zA-Z0-9+]*)&view=getlastpost'",
//"'(?<!/\/)modules/ipboard/index.php\?act=([\-_a-zA-Z0-9+]*)&f=([0-9]*)&t=([0-9]*)&s=([a-zA-Z0-9+]*)'",
);
$urlout = array(
//Forum IPBoard
//"forum.html\"",
//"modules/ipboard/forum-cat-\\2.html\"",
//"modules/ipboard/forum-cat-\\2.html'",
//"modules/ipboard/forum-post-\\2.html\"",
//"modules/ipboard/forum-post-\\2.html'",
//"modules/ipboard/forum-post-\\1.html\"'",
//"modules/ipboard/forum-catpage-\\2-\\3-\\4-\\5-\\6.html",
//"forum.html",
//"modules/ipboard/forum-board-\\2.html",
//"modules/ipboard/forum-post-\\2-getnewpost.html",
//"modules/ipboard/forum-post-\\2-getlastpost.html",
//"modules/ipboard/forum-board-\\2-\\3.html",
//"modules/ipboard/forum-post-page-\\2-\\3.html",
//"modules/ipboard/forum-post-\\1-\\2-\\3-getlastpost.html",
//"modules/ipboard/forum-post-\\1-\\2-\\3.html",

);

$s = preg_replace($urlin, $urlout, $s);
return $s;
}
Que tu appell avec un fichier header contenant par exemple :
ob_start();
include('reecriture.php');




PS. J'ai repris un code que j'utilise pour mon site xoops, n'utilisant pas ipb mes lignes sont toutes commentées....
P.P.S : Il reste a appliquer la fonction a la varialbe qui créer les url, mais je ne la connais pas sous ipb kk1 pourra surement t'aider
 
Discussions similaires
Haut