Bonjours à tous les coders.
2 jours que je passe sur le forum smf pour trouver la solution mais, rien ...... j'ai scrutté webrankinfo ...... rien.
Parlons du rewriting et des forums smf. Apremière vue tout est simple , juste une case à cocher et c'est bon. ( encore faut -il que le serveur supporte le mod_rewrite scrutable avec la fonction phpinfo()
Donc moi cela ne marche pas, pourtant je suis presque arrivé au but.
Le code de base de la réécriture d'url dans les forums smf se trouve : forum_smf/source/QueryString.php ( c'est la derniere fonction tout en bas )
elle donne :
Chez moi elle ne marche pas .......
Les urls sont toujours sous forme de :
http://www.brakstar.com/forum/index.php?board=19.0
alors que je voudrai qu'elle soit sous la forme ( pour l'instant ) :
http://www.brakstar.com/forum/index.php/topic,1628.html
Après avoir lu un tutorial de Mr [Unknow]
J'ai remplacé la fonction ci dessus par :
Et la ça à presque marché !
J'avais des pages sous forme :
http://www.brakstar.com/forum/index.php/topic,1628.html
mais malheureusement sur tousles urls rewrités il y avait une erreur 404 ( page inconnue au bataillon.
J'ai aussi mis un .htacces dans forum/
avec ce code :
Mais rien ne fais ... erreur 404
version du forum : 1.1 beta 3 public
:?: Pourriez vous m'aider :?:
2 jours que je passe sur le forum smf pour trouver la solution mais, rien ...... j'ai scrutté webrankinfo ...... rien.
Parlons du rewriting et des forums smf. Apremière vue tout est simple , juste une case à cocher et c'est bon. ( encore faut -il que le serveur supporte le mod_rewrite scrutable avec la fonction phpinfo()
Donc moi cela ne marche pas, pourtant je suis presque arrivé au but.
Le code de base de la réécriture d'url dans les forums smf se trouve : forum_smf/source/QueryString.php ( c'est la derniere fonction tout en bas )
elle donne :
Code:
// Rewrite URLs to include the session ID.
function ob_sessrewrite($buffer)
{
global $scripturl, $modSettings, $user_info, $context;
// If $scripturl is set to nothing, or the SID is not defined (SSI?) just quit.
if ($scripturl == '' || !defined('SID'))
return $buffer;
// Do nothing if the session is cookied, or they are a crawler - guests are caught by redirectexit(). This doesn't work below PHP 4.3.0, because it makes the output buffer bigger.
if (empty($_COOKIE) && SID != '' && (!$user_info['is_guest'] || (strpos($_SERVER['HTTP_USER_AGENT'], 'Mozilla') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== false)) && @version_compare(PHP_VERSION, '4.3.0') != -1)
$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '(?!\?' . preg_quote(SID, '/') . ')(\?)?/', '"' . $scripturl . '?' . SID . ';', $buffer);
// This should work even in 4.2.x, just not CGI.
if (!empty($modSettings['queryless_urls']) && (!$context['server']['is_cgi'] || @ini_get('cgi.fix_pathinfo') == 1) && $context['server']['is_apache'])
{
// Let's do something special for session ids!
if (defined('SID') && SID != '')
$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '\?(?:' . SID . ';)((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html?' . SID . '\$2\"'", $buffer);
else
$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html\$2\"'", $buffer);
}
// Return the changed buffer.
return $buffer;
}
Chez moi elle ne marche pas .......
Les urls sont toujours sous forme de :
http://www.brakstar.com/forum/index.php?board=19.0
alors que je voudrai qu'elle soit sous la forme ( pour l'instant ) :
http://www.brakstar.com/forum/index.php/topic,1628.html
Après avoir lu un tutorial de Mr [Unknow]
J'ai remplacé la fonction ci dessus par :
Code:
// Rewrite URLs to include the session ID.
function ob_sessrewrite($buffer)
{
global $scripturl, $modSettings, $user_info, $context;
// If $scripturl is set to nothing, or the SID is not defined (SSI?) just quit.
if ($scripturl == '' || !defined('SID'))
return $buffer;
// Do nothing if the session is cookied, or they are a crawler - guests are caught by redirectexit(). This doesn't work below PHP 4.3.0, because it makes the output buffer bigger.
if (empty($_COOKIE) && SID != '' && (!$user_info['is_guest'] || (strpos($_SERVER['HTTP_USER_AGENT'], 'Mozilla') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== false)))
$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '(?!\?' . preg_quote(SID, '/') . ')(\?)?/', '"' . $scripturl . '?' . SID . '&', $buffer);
// You can't do both, because session_start() won't catch the session if you do. But this should work even in 4.2.x, just not CGI.
else
$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+)(#[^"]*)?"/e', "'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html\$2\"'", $buffer);
// Return the changed buffer.
return $buffer;
}
Et la ça à presque marché !
J'avais des pages sous forme :
http://www.brakstar.com/forum/index.php/topic,1628.html
mais malheureusement sur tousles urls rewrités il y avait une erreur 404 ( page inconnue au bataillon.
J'ai aussi mis un .htacces dans forum/
avec ce code :
Code:
RewriteEngine On
RewriteRule ^topic-([^/]+)[/]?$ /forum/index.php?topic=$1
RewriteRule ^board-([^/]+)[/]?$ /forum/index.php?board=$1
Mais rien ne fais ... erreur 404
version du forum : 1.1 beta 3 public
:?: Pourriez vous m'aider :?: