Besoin d'aide pour fonction rewrite. Je désespère. Forum php

WRInaute occasionnel
Bonjour à tous
Je commence à désespérer. J'ai un forum avec une adresse de ce type :
http://www.dmdforum.be/forum/viewforum.php?f=11

Comment avoir une terminaison en html plus simple. Je sais que c'est une question classique, mais je n'y arrive pas. Si quelqu'un peut m'écrire cette ligne.

j'ai vu quelque part cet exemple de code, mais il ne semble pas fonctionner. Je précise que mon hébergeur accepte cette fonction.
RewriteRule ^viewforum_([0-9]+)_([0-9]+)_([0-9]+)\.html$ viewforum.php?f=$1topicdays=$2&start=$3 [L]
Merci d'avance.
 
WRInaute occasionnel
Je conseille ça :
RewriteRule ^viewforum_([0-9]+)_([0-9]+)_([0-9]+)\.html$ viewforum.php?f=$1&topicdays=$2&start=$3 [L]

Jocelyn
 
WRInaute passionné
bjp,

Deux choses:
1. ton forum utilise des identifiants de session et ta règle de réécriture ne les prend pas en compte.
2. L'url rewriting permet de présenter des URLs plus "conviviales" en créant ce qui pourrait être considéré comme des "alias" d'URLs, visibles par le monde extérieur.
C'est ce qui permet d'appeler viewforum_4.html et de voir la page viewforum.php?f=4 , la transformation dépendant de la règle de réécriture.

Par contre, l'URL rewriting ne va d'aucune manière modifier les URLs générées par ton programme de forum. C'est à toi à modifier TOUTES les sources pour que les liens générés soient sous la nouvelle forme, sinon tes efforts ne serviront à rien.

Dan
 
WRInaute passionné
bjp,

Pourrais-tu poster ici la règle telle que tu l'utilises dant ton fichier .htaccess (en faisant un copier/coller) ?
Au moins on pourra juger si elle est correcte.

Dan
 
WRInaute occasionnel
C'est à partir de celui ci que j'essai de modifier le rewrite.

Voici mon fichier htaccess qui est placé dans le dossier /204
Code:
RewriteEngine on 
Options +FollowSymlinks 
RewriteRule ^viewforum_([0-9]+)_([0-9]+)_([0-9]+)\.html$ viewforum.php?f=$1topicdays=$2&start=$3 [L] 
RewriteRule ^viewforum_([0-9]+)\.html$ viewforum.php?f=$1 [L] 
RewriteRule ^viewtopic_([0-9]+)_([0-9]+)_(asc|desc)_([0-9]+)\.html$ viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4 [L] 
RewriteRule ^viewtopic_([0-9]+)_([0-9]+)\.html$ viewtopic.php?t=$1&start=$2 [L] 
RewriteRule ^viewtopic_([0-9]+)_newest\.html$ viewtopic.php?t=$1&view=newest [L] 
RewriteRule ^viewtopic_([0-9]+)_previous\.html$ viewtopic.php?t=$1&view=previous [L] 
RewriteRule ^viewtopic_([0-9]+)_next\.html$ viewtopic.php?t=$1&view=next [L] 
RewriteRule ^viewtopic_([0-9]+)\.html$ viewtopic.php?t=$1 [L] 
RewriteRule ^viewprofile_([0-9]+)\.html$ profile.php?mode=viewprofile&u=$1 [L] 
RewriteRule ^viewmessage_([0-9]+)\.html$ viewtopic.php?p=$1 [L]

J'ai pris ce fichier sur ce forum.

Si on peut ma'aider ce serait bien.[/quote]
 
WRInaute passionné
Re...

J'ai pris un exemple simple: http://www.forumbts.com/204/viewtopic_1749.html
est effectivement bien réécrit http://www.forumbts.com/204/viewtopic.php?t=1749

Donc, l'URL rewriting fonctionne, en tout cas pour cette règle ! :wink:

Maintenant, il faut que tu trouves dans les sources la partie de code qui génère les liens et que tu la modifies pour qu'elle génère viewtopic_1749.html au lieu de viewtopic.php?t=1749 ... c'est ça le plus long à faire :roll:

Et encore, comme plusieurs membres WRI utilisent phpBB, les modifications à apporter aussi bien pour les identifiants de session que pour les URLs ont déjà été publiée sur le site WRI... tu as de la chance.

Va voir là: https://www.webrankinfo.com/forum/t/phpbb-et-url-rewriting.1907/ , après tu diras merci à Bdgest :wink:


Dan
 
WRInaute occasionnel
Moi on m'a toujours dit que pour être bon en informatique il faut faire comme les canards : calme en surface... mais agité en dessous.

Trève de plaisanterie, je crois que je serais incapable sans un modèle de faire toutes les modifications dans les fichiers php.
 
WRInaute discret
Ben non pas dans ce cas là. Il a dut choisir de la masquer donc seuls les admin et les modos doivent la voir. :wink:
 
WRInaute occasionnel
Oups...mille excuses
Elle était en effet masqué, c'est une option par défaut sur ce forum.
et merci encore pour les fichiers.
 
WRInaute occasionnel
Je remercie la personne qui m'a envoyé ses fichiers pour m'aider à modifier mon forum phpbb.
Tout est presque ok, je n'ai plus que 2 problèmes sur la page d'index et si quelqu'un peut m'aider à écrire ses fichiers se serait sympa.

Premier problème avec le mod Last Visit sur index.php
Voici le code, qu'il me faut modifier pour que le rewrite fonctionne :
Code:
$users_today_list.=( $todayrow['user_allow_viewonline'])?' <a href="' . append_sid("viewprofile_" . $todayrow['user_id'] . ".html") . '"' . $style_color .'><b>' . $todayrow['username'] . '</b></a>':(($userdata[user_level]==ADMIN)?' <a href="' . append_sid("viewprofile_" . $todayrow['user_id'] . ".html") . '"' . $style_color .'><i>' . $todayrow['username'] . '</i></a>':'');


Deuxième problème avec le mode Last X Post sur index.php
Ceci est le fichier lastxpostsindex.php
Code:
<?php
######################################################## 
## Mod Title: Last X posts on forum index with Admin Pannel 
## Mod Version: 1.0.0 
## Authors: Kriiizzz < kriiizzz@free.fr <mailto:kriiizzz@free.fr> >
##			Bobe < bobe@2037.biz <mailto:bobe@2037.biz> >
##          see OLD AUTORS greetings for additionnal infos on autors
##
## Description: Recent Activity page that prints out the X most recent
##     posts on index with a CP Admin wich provide you possibility to 
##     select forum to remove for prints out on last X posts page and 
##     let you specify how much posts must be shown and if the topic 
##     must be shown in a separate window or a self window.
##  
## 
## Installation Level: easy 
## Installation Time: 3 Minutes													
## Files To Edit: 2
##  				index.php,
##      		    index_body.tpl,
## Files included: 5 
## 				   admin_lastxpostsindex.php,
## 				   admin_lastxpostsindex.tpl,
##				   lastxpostsindex.tpl,
##				   mod_lastxpostsindex_install.php
## 				   this one lastxpostsindex.php               					 
######################################################## 
##           OLD Authors greetings:
## Thanks for all poeple wich had worked on this mod 
## This mod is a mix with recent activity mod by:
## Author: Daniel Baker < dbaker-phpBB@ityt.com <mailto:dbaker-phpBB@ityt.com> >
## and lastXposts by:
## Author: Bobe < bobe@2037.biz <mailto:bobe@2037.biz> >
## Modifications on old mods:
## Lionel F. Lebeau < lionel.lebeau@noos.fr <mailto:lionel.lebeau@noos.fr> >
## Warock 
## morpheus < morpheus@2037.biz <mailto:morpheus@2037.biz>> 
## bosskev < bosskev@caramail.com <mailto:bosskev@caramail.com>> 
## 
######################################################## 

$sql = "SELECT * FROM " . $table_prefix . "lastx_posts_on_index"; 
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, "Impossible d'obtenir la config des x derniers posts<\ br>Getting config pannel for lastindeXpost impossible", '', __LINE__, __FILE__, $sql); 
}

while( $row = $db->sql_fetchrow($result) )
{
	$xpost_config[$row['nom']] = $row['valeur']; 
}

$sql = "SELECT t.topic_id, t.topic_title, t.topic_replies, t.topic_last_post_id, f.forum_id, f.forum_name, 
			p.post_time, u.user_id, u.username 
		FROM " . TOPICS_TABLE . " AS t, " . FORUMS_TABLE . " AS f, " . POSTS_TABLE . " AS p, " . USERS_TABLE . " AS u 
		WHERE t.forum_id = f.forum_id 
		  AND f.auth_lastxpostsindex_mod = 1 AND f.auth_view < 3 AND f.auth_read < 3 
		  AND t.topic_moved_id = 0 
		  AND p.post_id = t.topic_last_post_id 
		  AND u.user_id = p.poster_id 
		ORDER BY t.topic_last_post_id DESC 
		LIMIT " . $xpost_config['PostNumber']; 
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, "Impossible d'obtenir les X derniers posts<\ br>Cannot get last X posts ", '', __LINE__, __FILE__, $sql); 
}

$xpostrow = array(); 
while( $row = $db->sql_fetchrow($result) )
{
	$xpostrow[] = $row; 
}

$template->set_filenames(array( 
   'lastxpostsindex' => 'lastxpostsindex.tpl' 
)); 

$template->assign_vars(array( 
   'L_TOPIC' => $lang['Topic'], 
   'L_FORUM' => $lang['Forum'], 
   'L_USERNAME' => $lang['Username'], 
   'L_REPLIES' => $lang['Replies'], 
   'L_DATE' => $lang['Date'], 
   
   'TARGET' => $xpost_config['Target'], 
   'NBREXPOST' => $xpost_config['PostNumber'] 
)); 

for( $i = 0; $i < count($xpostrow); $i++ )
{
	$class = ( !($i % 2) ) ? 'row1' : 'row2'; 
	$post_date = create_date($board_config['default_dateformat'], $xpostrow[$i]['post_time'], $board_config['board_timezone']); 
	
	$topic_title = htmlspecialchars(stripslashes($xpostrow[$i]['topic_title'])); 
	if( strlen($topic_title) > $xpost_config['nb_caracteres'] ) 
	{ 
		$k = substr($topic_title, 0, $xpost_config['nb_caracteres']); 
		$pos = strrpos($k, " "); 
		$k = substr($k, 0, $pos); 
		$topic_title = $k . "..."; 
		
		// Décommentez la ligne suivante pour activer les smiley dans le titre du topic
		// Uncomment line below to smilies in topic title
		//
		// $topic_title = smilies_pass($topic_title); 
	}
	
	$template->assign_block_vars('mess',array( 
		'CLASS' => $class, 
		'URL' => append_sid("viewtopic.php?" . POST_POST_URL . "=" . $xpostrow[$i]['topic_last_post_id']) . "#" . $xpostrow[$i]['topic_last_post_id'], 
   		'TITLE' => stripslashes($topic_title), 
		'URL_FORUM' => append_sid("viewforum.php?" . POST_FORUM_URL . "=" . $xpostrow[$i]['forum_id']), 
		'FORUM' => htmlspecialchars(stripslashes($xpostrow[$i]['forum_name'])), 
		'URL_USER' => append_sid("profile.php?mode=viewprofile&" . POST_USERS_URL . "=" . $xpostrow[$i]['user_id']), 
		'USER' => htmlspecialchars(stripslashes($xpostrow[$i]['username'])), 
		'REPLIES' => $xpostrow[$i]['topic_replies'], 
		'LAST' => $post_date 
	)); 
}

$template->assign_var_from_handle('LASTXPOSTSINDEX', 'lastxpostsindex'); 
?>
D'avance, merci.
 
WRInaute discret
Juste une petite question. Quel mod utilises tu pour consulter les :
Consulter les Messages par période
Tout en haut à droite de ton forum ? Le mien ne fonctionne pas :(
D'autre part, quel template utilises tu, il est trés sympa :D
 
WRInaute occasionnel
Franchement pour les messages par période je ne sais plus, mais si tu me dits quelles pages sont concernées et que tu me donne une adresse mail, je te les envois.
Le template est fiapple à la base.
 
WRInaute discret
Ca doit être ton fichier index.php ainsi que le template (fichier .tpl) associé. Tu peux m'envoyer ça que je regarde ?

Et fiapple tu l'as trouvé où ?
 
Discussions similaires
Haut