PhpBB et URL Rewriting : article de synthèse

WRInaute discret
j'ai modifer sessions.php pour supprimé les SID

les SID ce supprime ;) mais tous les fonctions de admin(ajout de forum,email de masse etc...) ne marche pas pourquoi ??
 
WRInaute impliqué
Si tu lis le post tu verras que le forum nécessite l'utilisation des sid , il ne faut pas les supprimer pour tous , seulement pour les visiteurs ( et seulement dans les URL ) .
 
WRInaute impliqué
Merci bcp pour le lien. Tout fonctionne nickel chez moi. J'ai juste enlevé la ligne :

Code:
RewriteRule ^forum([0-9]*).* viewforum.php?f=$1&mark=topics
Parce qu'elle rentre en conflit avec :

Code:
RewriteRule ^forum([0-9]*).* viewforum.php?f=$1
Et du coup, quand on va sur un forum, ca marque tous les messages comme lus :eek:

Pour le reste, impec' !
 
WRInaute impliqué
Il n'y a pas de conflit tant que tu ne changes pas l'ordre des lignes dans .htaccess ou includes/page_header.php :wink:


Arf ... Peut être en fait : il faut remplacer RewriteRule ^forum([0-9]*).* viewforum.php?f=$1&mark=topics par RewriteRule ^mforum([0-9]*).* viewforum.php?f=$1&mark=topics dans le .htaccess .
 
WRInaute impliqué
De toutes facons, m'en tape que GG voit cette page ! Donc c'est pour ca que je l'ai viré du htaccess....
 
WRInaute discret
bon j'ai deja fait les modif de mon sessions.php j'éspère ne pas avoir fait d'érreur :wink:


Code:
<?php
/***************************************************************************
 *                                sessions.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: sessions.php,v 1.58.2.10 2003/04/05 12:04:33 acydburn Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

//
// Adds/updates a new session to the database for the given userid.
// Returns the new session ID on success.
//
function session_begin($user_id, $user_ip, $page_id, $auto_create = 0, $enable_autologin = 0)
{
	global $db, $board_config;
	global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;

	$cookiename = $board_config['cookie_name'];
	$cookiepath = $board_config['cookie_path'];
	$cookiedomain = $board_config['cookie_domain'];
	$cookiesecure = $board_config['cookie_secure'];

	if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )
	{
		$session_id = isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
		$sessiondata = isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();
		$sessionmethod = SESSION_METHOD_COOKIE;
	}
	else
	{
		$sessiondata = array();
		$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
		$sessionmethod = SESSION_METHOD_GET;
	}

	$last_visit = 0;
	$current_time = time();
	$expiry_time = $current_time - $board_config['session_length'];

	//
	// Try and pull the last time stored in a cookie, if it exists
	//
	$sql = "SELECT * 
		FROM " . USERS_TABLE . " 
		WHERE user_id = $user_id";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(CRITICAL_ERROR, 'Could not obtain lastvisit data from user table', '', __LINE__, __FILE__, $sql);
	}

	$userdata = $db->sql_fetchrow($result);

	if ( $user_id != ANONYMOUS )
	{
		$auto_login_key = $userdata['user_password'];

		if ( $auto_create )
		{
			if ( isset($sessiondata['autologinid']) && $userdata['user_active'] )
			{
				// We have to login automagically
				if( $sessiondata['autologinid'] == $auto_login_key )
				{
					// autologinid matches password
					$login = 1;
					$enable_autologin = 1;
				}
				else
				{
					// No match; don't login, set as anonymous user
					$login = 0; 
					$enable_autologin = 0; 
					$user_id = $userdata['user_id'] = ANONYMOUS;
				}
			}
			else
			{
				// Autologin is not set. Don't login, set as anonymous user
				$login = 0;
				$enable_autologin = 0;
				$user_id = $userdata['user_id'] = ANONYMOUS;
			}
		}
		else
		{
			$login = 1;
		}
	}
	else
	{
		$login = 0;
		$enable_autologin = 0;
	}

// 
   // CC IP-mod ($user_ip is created in common.php) 
   // 
   global  $phpEx, $phpbb_root_path;
   include($phpbb_root_path . 'includes/cc_mod.'.$phpEx);
   
	//
	// Initial ban check against user id, IP and email address
	//
	preg_match('/(..)(..)(..)(..)/', $user_ip, $user_ip_parts);

	$sql = "SELECT ban_ip, ban_userid, ban_email 
		FROM " . BANLIST_TABLE . " 
		WHERE ban_ip IN ('" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . $user_ip_parts[4] . "', '" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . "ff', '" . $user_ip_parts[1] . $user_ip_parts[2] . "ffff', '" . $user_ip_parts[1] . "ffffff')
			OR ban_userid = $user_id";
	if ( $user_id != ANONYMOUS )
	{
		$sql .= " OR ban_email LIKE '" . str_replace("\'", "''", $userdata['user_email']) . "' 
			OR ban_email LIKE '" . substr(str_replace("\'", "''", $userdata['user_email']), strpos(str_replace("\'", "''", $userdata['user_email']), "@")) . "'";
	}
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(CRITICAL_ERROR, 'Could not obtain ban information', '', __LINE__, __FILE__, $sql);
	}

	if ( $ban_info = $db->sql_fetchrow($result) )
	{
		if ( $ban_info['ban_ip'] || $ban_info['ban_userid'] || $ban_info['ban_email'] )
		{
			message_die(CRITICAL_MESSAGE, 'You_been_banned');
		}
	}

	//
	// Create or update the session
	//
	$sql_ip = $user_id == ANONYMOUS ? " AND session_ip = '$user_ip'" : ''; 
   $sql = "UPDATE " . SESSIONS_TABLE . " 
      SET session_ip = '$user_ip', session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login 
      WHERE session_id = '" . $session_id . "' $sql_ip 
         AND session_user_id = '$user_id'";
	if ( !$db->sql_query($sql) || !$db->sql_affectedrows() )
	{
		$session_id = md5(uniqid($user_ip));

		$sql = "INSERT INTO " . SESSIONS_TABLE . "
			(session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in)
			VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login)";
		if ( !$db->sql_query($sql) )
		{
			message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql);
		}
	}

	//if ( $user_id != ANONYMOUS )
	//{// ( $userdata['user_session_time'] > $expiry_time && $auto_create ) ? $userdata['user_lastvisit'] : ( 
		$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; 

		$sql = "UPDATE " . USERS_TABLE . " 
			SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit, user_lastlogon = " . time() .  ", user_totallogon=user_totallogon+1
			WHERE user_id = $user_id";
		if ( !$db->sql_query($sql) )
		{
			message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql);
		}

		$userdata['user_lastvisit'] = $last_visit;

		$sessiondata['autologinid'] = ( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '';
		$sessiondata['userid'] = $user_id;
	//}

	$userdata['session_id'] = $session_id;
	$userdata['session_ip'] = $user_ip;
	$userdata['session_user_id'] = $user_id;
	$userdata['session_logged_in'] = $login;
	$userdata['session_page'] = $page_id;
	$userdata['session_start'] = $current_time;
	$userdata['session_time'] = $current_time;

	setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
	setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);

	$SID = $user_id > 0 ? 'sid=' . $session_id : '';

	return $userdata;
}

//
// Checks for a given user session, tidies session table and updates user
// sessions at each page refresh
//
function session_pagestart($user_ip, $thispage_id)
{
	global $db, $lang, $board_config;
	global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;

	$cookiename = $board_config['cookie_name'];
	$cookiepath = $board_config['cookie_path'];
	$cookiedomain = $board_config['cookie_domain'];
	$cookiesecure = $board_config['cookie_secure'];

	$current_time = time();
	unset($userdata);

	if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )
	{
		$sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();
		$session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
		$sessionmethod = SESSION_METHOD_COOKIE;
	}
	else
	{
		$sessiondata = array();
		$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
		$sessionmethod = SESSION_METHOD_GET;
	}

	//
	// Does a session exist?
	//
	if ( !empty($session_id) )
	{
	// Start add - Last visit MOD
$expiry_time = $current_time - $board_config['session_length'] ;
// End add - Last visit MOD
		//
		// session_id exists so go ahead and attempt to grab all
		// data in preparation
		//
		$sql = "SELECT u.*, s.*
			FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u
			WHERE s.session_id = '$session_id'
				AND u.user_id = s.session_user_id AND session_time > $expiry_time";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);
		}

		$userdata = $db->sql_fetchrow($result);

		//
		// Did the session exist in the DB?
		//
		if ( isset($userdata['user_id']) )
		{
			//
			// Do not check IP assuming equivalence, if IPv4 we'll check only first 24
			// bits ... I've been told (by vHiker) this should alleviate problems with 
			// load balanced et al proxies while retaining some reliance on IP security.
			//
			$ip_check_s = substr($userdata['session_ip'], 0, 6);
			$ip_check_u = substr($user_ip, 0, 6);

			if ($ip_check_s == $ip_check_u)
			{
				$SID = $userdata['user_id'] > 0 ? (($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : '') : '';

				//
				// Only update session DB a minute or so after last update
				//
				if ( $current_time - $userdata['session_time'] > 60 )
				{
					$sql = "UPDATE " . SESSIONS_TABLE . " 
						SET session_time = $current_time, session_page = $thispage_id 
						WHERE session_id = '" . $userdata['session_id'] . "'";
					if ( !$db->sql_query($sql) )
					{
						message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
					}

					//if ( $userdata['user_id'] != ANONYMOUS )
					//{
						$sql = "UPDATE " . USERS_TABLE . " 
							SET user_session_time = $current_time, user_session_page = $thispage_id, user_totalpages = user_totalpages+1, user_totaltime = user_totaltime+($current_time-".$userdata['session_time'].") 
							WHERE user_id = " . $userdata['user_id'];
						if ( !$db->sql_query($sql) )
						{
							message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
						}
					//}

					//
					// Delete expired sessions
					//
					$expiry_time = $current_time - $board_config['session_length'];
					$sql = "DELETE FROM " . SESSIONS_TABLE . " 
						WHERE UNIX_TIMESTAMP() - session_time >=172800
							AND session_id <> '$session_id'";
					if ( !$db->sql_query($sql) )
					{
						message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql);
					}

					setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
					setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);
				}

				return $userdata;
			}
		}
	}
   else 
   { 
      // try to login guest 
      $sql = "SELECT u.*, s.* 
         FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u 
         WHERE s.session_ip = '$user_ip' 
            AND s.session_user_id = " . ANONYMOUS . " 
            AND u.user_id = s.session_user_id 
               LIMIT 0, 1"; 
      if ( !($result = $db->sql_query($sql)) ) 
      { 
         message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql); 
      } 

      $userdata = $db->sql_fetchrow($result); 

      if ( isset($userdata['user_id']) ) 
      { 
         if ( $current_time - $userdata['session_time'] > 60 ) 
         { 
            $sql = "UPDATE " . SESSIONS_TABLE . " 
               SET session_time = $current_time, session_start = $current_time, session_page = 0 
               WHERE session_id = '" . $userdata['session_id'] . "'"; 
            if ( !$db->sql_query($sql) ) 
            { 
               message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql); 
            } 
         } 
         return $userdata; 
      } 
   }
	//
	// If we reach here then no (valid) session exists. So we'll create a new one,
	// using the cookie user_id if available to pull basic user prefs.
	//
	$user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS;

	if ( !($userdata = session_begin($user_id, $user_ip, $thispage_id, TRUE)) )
	{
		message_die(CRITICAL_ERROR, 'Error creating user session', '', __LINE__, __FILE__, $sql);
	}

	return $userdata;

}

//
// session_end closes out a session
// deleting the corresponding entry
// in the sessions table
//
function session_end($session_id, $user_id)
{
	global $db, $lang, $board_config;
	global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;

	$cookiename = $board_config['cookie_name'];
	$cookiepath = $board_config['cookie_path'];
	$cookiedomain = $board_config['cookie_domain'];
	$cookiesecure = $board_config['cookie_secure'];

	$current_time = time();

	//
	// Pull cookiedata or grab the URI propagated sid
	//
	if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) )
	{
		$session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
		$sessionmethod = SESSION_METHOD_COOKIE;
	}
	else
	{
		$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
		$sessionmethod = SESSION_METHOD_GET;
	}

	//
	// Delete existing session
	//
	$sql = "DELETE FROM " . SESSIONS_TABLE . " 
		WHERE session_id = '$session_id' 
			AND session_user_id = $user_id";
	if ( !$db->sql_query($sql) )
	{
		message_die(CRITICAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql);
	}

	setcookie($cookiename . '_data', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);
	setcookie($cookiename . '_sid', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);

	return true;
}

//
// Append $SID to a url. Borrowed from phplib and modified. This is an
// extra routine utilised by the session code above and acts as a wrapper
// around every single URL and form action. If you replace the session
// code you must include this routine, even if it's empty.
//
function append_sid($url, $non_html_amp = false)
{
	global $SID;

	if ( !empty($SID) && !preg_match('#sid=#', $url) )
	{
		$url .= ( ( strpos($url, '?') != false ) ?  ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID;
	}

	return $url;
}

?>

mais j'ai remaqué meme si je coche connexion auto bah quand je revien sur mon site bah faut que je me reconnect :cry:

puis mon .htaccess j'ai sa

Code:
DirectoryIndex portal.php index.php index.htm index.html

je suis chez OVH
 
WRInaute discret
puis mon .htaccess j'ai déja sa

Code:
DirectoryIndex portal.php index.php index.htm index.html

et pour info je suis chez OVH
 
WRInaute discret
Ca supprime bien l'erreur : index.html&sid=315468ds6d4s6q ?

Car j'avais cette erreur sur la page index à chaque connection puis ca s'enlevait biensur en réactualisant
 
WRInaute passionné
Est ce que ce tuto est valable pour la version 2.08 de phpbb?
J'ai appliqué les modifications demandées à la lettre mais cela ne fonctionne pas au niveau du rewriting.
Les SIDs dont bien enlevées des urls mais je tombe sur une erreur 404 qd je clique sur un lien du forum. Ca doit sans doute venir du .htaccess car lorsque je passe avec la souris sur un lien, dans la barre de naviguation je vois le liens rewrité mais je tombe sur une page blanche (404).
Quelqu'un aurait une idée?

Merci.
Sebastien.
 
WRInaute impliqué
C'est compatible avec toutes les versions de phpbb depuis la 2.0.4 ( et probablement les précédentes , je n'ai pas essayé ) .
Ton problème est au niveau du .htaccess .
 
WRInaute impliqué
Tu n'as même pas besoin de faire quoi que ce soit . Mais cela facilite l'indexation des pages .
 
Nouveau WRInaute
Existe t'il un script générique pour retirer le session id pour un invité comme il est expliqué pour PHPbb ?

Je ne sais pas comment faire pour ne plus les avoir dans mes pages qui sont référencées ... :oops:
 
WRInaute impliqué
Soit tu mets le code suivant dans un fichier .htaccess :
Code:
php_flag session.use_trans_sid off
soit tu mets le code suivant sur ta page php :
Code:
ini_set('session.use_trans_sid', false);
 
WRInaute discret
vinprixdomaine.com a dit:
ça ne concernait pas que PHPbb ?
C'est le sujet de départ du topic, c'est vous qui déviez ;-)

Si on veut faire un synthèse, il vaut mieux éviter le hors-sujet, même si le domaine est très similaire, non ? :roll:
 
WRInaute discret
Dr DLP
pourquoi la disparition du sid... sur mon forum apprait aussi avant le premier clic après il parte?
 
WRInaute discret
En fait à chaque page vue, phpBB vérifie si tu envoies un cookie contenant un identifiant de sessions valable.
  • Si oui, alors il sait que tu peux utiliser les cookies, et il enlève le sid= des urls.
  • Si non, alors il faut s'assurer de transmettre le sid, et que l'envoi de cookies fonctionne bien (on pourrait imaginer qu'il y ait un problème...), donc il met le sid dans les urls.
Donc quand tu arrives pour la première fois depuis un certain temps (= la durée de vie des sessions), tu ne possède plus de cookie avec un identifiant valable, donc tu reçois un nouveau sid, qui t'es transmis à la fois par l'url et un cookie ;-)
 
WRInaute discret
erreur 404 a chaque fois :roll:
j ai suivi exactement la procédure
sauf le session.php ou g pas touché mais jvois pas le rapport avec le .htaccess ...
donc?

merci :(
je vais prendre l'air car je vais finir par tout balancer :evil: .
 
WRInaute impliqué
Est-ce que tu au moins essayé avec ça ?
Code:
RewriteEngine On 
Options +FollowSymlinks 
RewriteRule ^forums.* /index.php 
RewriteRule ^forum([0-9]*).* /viewforum.php?f=$1&mark=topic 
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 ^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 ^sutra([0-9]*).* /viewtopic.php?p=$1
 
WRInaute discret
Ok ca marche , merci :)

Et quelqu'un sais comment faire pour ajouter des url ?
Exemple pour les profils je les veut de la sorte :
profile_viewprofile_ID.html

Pour le .htaccess c'est ok de mon coté , c'est dans page_header.php que je comprend pas bien , j'ai beau rajouter les lignes ca veut pas ...
rien ne se passe

une idée ?
 
WRInaute discret
Dis au fait Dr DLP, dans ton htaccess il y a plusieurs lignes qui virent l'identifiant de session de ceux qui n'acceptent pas les cookies, pourquoi tu ne fais pas de [qsa] ?
 
Nouveau WRInaute
Bonjour,

Est-il préferable de faire son "URL Rewriting" avec l'extension php ou html ? Quelle est la différence?

Merci d'avance, :)

Polux
 
WRInaute discret
j pense que ca marcherait aussi, enfin ca reste a tester, mais bon ca sert a rien, ca fait style le .php qui sert a rien ;)

>> plus propre en .html

++
 
WRInaute discret
tiens je viens de voir un doc avec plein d infos sur le langage utilisé dans les .htaccess et je trouve plus simple de mettre a la place des [0-9] ou des [a-zA-Z] ceci

>> [[:graph:]]

ca comprend tout les caracteres imprimables sauf les espaces.

voila, si y a un probleme avec, merci de le signaler ;)

++

edit : l url de la doc >> http://www.webdynamit.net/_faq <<
 
WRInaute discret
Bonjour,

Je ne sais pas si ça a déjà été dit mais un membre à remarqué une erreur sur mon forum,

lorsque l'on cliquait sur la petite icone orange pour aller voir le dernier nouveau message d'un topic, ça affichait une erreur 404.

En fait ça venait du fait qu'il manquait cette ligne dans le .htaccess :

Code:
RewriteRule ^newtopic([0-9]*).* viewtopic.php?t=$1&view=newest

A corriger... :wink:
 
R
[RNZ] Zeitgeist
Guest
J'ai testé la methode de Doc DLP et ça fonctionne pas mal du tout, j'attends la visite de google maintenant.
Ce dernier reference 135 pages de mon forum, j'espere que ce resultat sera multiplié! :)
 
WRInaute occasionnel
A propos du panneau d'admin qui ne fonctionne pas quand on désactive les sessions...
J'ai simplement installé le forum en "double" dans un autre répertoire connu uniquement des admins (ou protégé par un .htaccess éventuellement) où là les sessions fonctionnent et donc le panneau d'admin aussi.
C'est tout con mais ça faisait 6 mois que je m'enbêtais à changer mon fichier sessions.php à chaque fois que je voulais faire une intervention dans l'admin... :|
 
WRInaute discret
glouf a dit:
A propos du panneau d'admin qui ne fonctionne pas quand on désactive les sessions...
J'ai simplement installé le forum en "double" dans un autre répertoire connu uniquement des admins (ou protégé par un .htaccess éventuellement) où là les sessions fonctionnent et donc le panneau d'admin aussi.
C'est tout con mais ça faisait 6 mois que je m'enbêtais à changer mon fichier sessions.php à chaque fois que je voulais faire une intervention dans l'admin... :|

oui mais ca sera donc l admin du 2eme forum et tu pourra rien administrer sur le 1er ... me trompe je ?? ^^

++
 
WRInaute occasionnel
lorantino a dit:
oui mais ca sera donc l admin du 2eme forum et tu pourra rien administrer sur le 1er ... me trompe je ?? ^^
++

Non tu fais une ré-install avec une nouvelle base ou des noms de tables différents pour être sûr de ne pas écraser tes tables :roll: et ensuite dans ton fichier config.php tu remets le nom de la base ou le préfixe de tes tables de ton "vrai" forum et te voilà avec un "clone" de celui-ci.
Seul inconvénient si tu as un petit espace, ça te prends quelques mo sur le disque.
 
WRInaute occasionnel
Bonjour,

J'ai modifié le fichier session de mon forum et je vois GGB qui ne visite que trois pages : index, login et faq.

Comment verifier que tout est bien parametré et que le robots peut aller visiter les autres pages ?

Autre question, quand on cré un fichier htacces pour le mettre dans la racine du forum, comment doit on le nomer et si on le met dans la racine du site, est il efficace pour le site aussi ?

Merci de votre aide,

A bientot,

Alesque.
 
WRInaute passionné
Bonjour

J'ai du mal à comprendre ca :
Code:
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

Il les pique où les $2 à 5 l'Apache ?
Et il vient d'où le .html ?

François
 
WRInaute passionné
Personns qui répond?
Dans l'article publié sur WRI,
on a
"'(?<!/)viewtopic.php\?t=([0-9]*)&start=([0-9]*)
&postdays=([0-9]*)&postorder=([a-zA-Z]*)
&highlight=([a-zA-Z0-9]*)'",
remplacé par :
"ftopic\\1-\\2-\\3-\\4-\\5.php",

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

François
 
WRInaute occasionnel
En effet il semble y avoir un souci, du coup ça créé deux urls pour le même topic (cf titre du topic)
 
Nouveau WRInaute
Bonjour,
Je souhaite utiliser l'url rewriting pour renommer les extensions de mes pages en .jrm, cela va - t il nuire à mon référencement ?

Merci
 
WRInaute passionné
Bonsoir

j'ai appliqué les règles énoncées ici, tout va bien, sauf pour le titre des sujets.

Je m'explique, si dans le code j'insère
Code:
<a href="{U_VIEW_TOPIC}">{TOPIC_TITLE}</a>

comme dans le viewtopic initial, j'obtiens bien un titre de sujet cliquable, mais celui-ci est de la forme www.example.com/forum/ftopic4195-0-0-asc-.php

Comment faire pour que ce lien soit "stable", comme sur WRI (à savoir www.example.com/forum/ftopic4195.php ), ce qui est quand même plus pratique et plus propre quand un membre veut citer une url d'un sujet...

Merci d'avance
 
WRInaute passionné
Regarde dans ton repertoire include le fichier pageheader et les lignes qui font la transcription des urls.

édité : enfin non, ca marchera pas comme cela.
 
Nouveau WRInaute
problème .htaccess

Bonjour à tous.
J'ai appliqué à la lettre toutes les consignes, modifié sessions, page_rail et page_header, créé le .htaccess comme dit pour ovh avec le /repertoire... Or, si l'url se rewrite bien, apache m'envoie une erreur... Le problème c'est qu'ensuite, malgré la suppression de l'.htaccess ou sa modif en rewriteEngine off, ce sont toujours les pages rewritées avec l'erreur qui s'affichent, et ça m'oblige à supprimer et recharger tout mon répertoire phpBB.
Je vous donne le chemin (je précise que ce forum fait partie d'osdate, et que les login dans phpBB se font à partir d'osdate). Donc chemin du forum : osdate/forum/phpBB
Et voici le .htaccess qui plante :
Code:
RewriteEngine On

RewriteRule ^forums.* /phpBB/index.php

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

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

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

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

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

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

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

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

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

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

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

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

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

Si quelqu'un a une idée sur ce qui ne va pas, merci d'avance...
Cordialement à tous
ps : j'espère avoir mis ce topic au bon endroit... Si ce n'est pas le cas, je vous fais toutees mes excuses.
 
Nouveau WRInaute
erreur 404 sur l'url rewritée

Bonjour.
Tout est appliqué, l'url affichée est bien sous forme phpBB/forum1,2,3,4,etc.php, mais j'ai une erreur 404...
Not Found
The requested URL /phpBB/viewforum.php was not found on this server.
Apache/1.3.41 Server at XXXX.fr Port 80
Pourtant la page viewforum.php est bien dans le bon répertoire... Quézaco ?

Je tourne en rond, si une bonne âme charitable pouvait m'éclairer, je brulerais un cierge pour lui. Merci de votre bienveillance.
 
Nouveau WRInaute
tout est réglé...

désolé de vous avoir dérangé... Finalement c'était un problème de répertoire. Le répertoire phpBB était lui-même dans un répertoire forum. Le .htaccess se trouvait dans /phpBB, mais chez ovh, l'adressage dans le .htaccess était en réalité /forum/phpBB
 
Discussions similaires
Haut