SEF Urls

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

SEF Urls

Beitrag von mgutt »

Nachdem ich bereits zwei Mods geschrieben habe, in denen die Urls suchmaschinenfreundlicher gemacht werden sollen, fragte man mich nach einem Mod, der dies auch ohne die Apache Module "ModRewrite" oder "ForceType" ermöglicht.

Wer ModRewrite aktiviert hat, kann diesen Mod installieren:
http://www.phpbb.de/viewtopic.php?t=116014

Für diesen Mod hier wird kein ModRewrite benötigt. Auch benötigt ihr kein "ForceType". Das einzige was der Server verstehen muss ist "AcceptPathInfo". Dies kann man theoretisch über eine .htaccess nachträglich aktivieren, aber in der Regel ist diese Funktion aktiv.

Testen könnt ihr das, wenn ihr einen Link zu einem Forum bei euch ändert wie folgt von:
http://www.phpbb.de/viewforum.php?f=48
in:
http://www.phpbb.de/viewforum.php/f/48

Die Seite selbst sollte dann noch gehen (auch wenn jetzt das Design falsch aussieht und die Anzeige erscheint "Das Forum existiert nicht", das regelt dieser Mod dann). Es darf nur keine Fehlermeldung erscheinen. (meist in Englisch)

Dann fangen wir mal an :D

"SEF Urls" steht für Search Engine Friendly Urls.

Die Version 1.0.2 steht:

Demoboard: www.wiki-forum.de

suche in common.php: füge davor ein:

Code: Alles auswählen

// SEF Mod Begin
// baseurl
$server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://';
$server_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['server_name']));
$server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) : '';
$script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['script_path']));
$script_name = ($script_name == '') ? $script_name : '/' . $script_name;
$scriptpath = $server_protocol . $server_name . $server_port . $script_name;

if ( !empty($HTTP_SERVER_VARS['PHP_SELF']) )
{
	$PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'];
}
else if ( !empty($_SERVER['PHP_SELF']) )
{
	$PHP_SELF = $_SERVER['PHP_SELF'];
}
else
{
	$PHP_SELF = '';
}

// replace slashes
if (strlen(getenv('PATH_INFO')) > 1)
{
	$GET_array = array();
	$PHP_SELF = str_replace(getenv('PATH_INFO'), '', $PHP_SELF);
	$vars = explode('/', substr(getenv('PATH_INFO'), 1));
	$cvars = count($vars)-1;
	$vars[$cvars] = strpos($vars[$cvars], ',') !== false ? substr(strrchr($vars[$cvars], ','), 1) : $vars[$cvars];
	$vars = str_replace('.html', '', $vars);
	for ($i=0, $n=sizeof($vars); $i<$n; $i++)
	{
		if (strpos($vars[$i], '[]'))
		{
			$GET_array[substr($vars[$i], 0, -2)][] = $vars[$i+1];
		}
		else
		{
			$HTTP_GET_VARS[$vars[$i]] = $vars[$i+1];
		}
		$i++;
	}
}
// SEF Mod End
suche in includes/sessions.php nach:

Code: Alles auswählen

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; 
}
ersetze gegen:

Code: Alles auswählen

function append_sid($url, $non_html_amp = false)
{
	global $SID, $phpEx, $scriptpath;

	if ( !empty($SID) && !preg_match('#sid=#', $url) )
	{
		$url .= ( ( strpos($url, '?') !== false ) ?  ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID;
	}
	elseif ( strpos($url, './') === false && strpos($url, 'login') === false && !defined('IN_ADMIN') )
	{
		$url_amp = ( $non_html_amp ) ? '&' : '&';
		$url_parms = array('?', '=', $url_amp);
		$url_rparms = array('/','/', '/');
		$url = $scriptpath . preg_replace('#^\/?(.*?)\/?$#', '/\1', trim(str_replace($url_parms, $url_rparms, strpos($url, ".$phpEx?") === false ? $url : $url . '.html')));
	}

	return $url;
}
öffne includes/page_header.php und suche nach:

Code: Alles auswählen

$u_login_logout = 'login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id'];
ersetze gegen:

Code: Alles auswählen

$u_login_logout = $scriptpath . '/login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id'];
suche nach:

Code: Alles auswählen

$u_login_logout = 'login.'.$phpEx;
ersetze gegen:

Code: Alles auswählen

$u_login_logout = $scriptpath . '/login.'.$phpEx;
öffne page_tail.php und suche nach:

Code: Alles auswählen

$admin_link = ( $userdata['user_level'] == ADMIN ) ? '<a href="admin/index.' . $phpEx . '?sid=' . $userdata['session_id'] . '">' . $lang['Admin_panel'] . '</a><br /><br />' : '';
ersetze gegen:

Code: Alles auswählen

$admin_link = ( $userdata['user_level'] == ADMIN ) ? '<a href="'. $scriptpath . '/admin/index.' . $phpEx . '?sid=' . $userdata['session_id'] . '">' . $lang['Admin_panel'] . '</a><br /><br />' : '';
öffne viewtopic.php und suche nach:

Code: Alles auswählen

$s_auth_can .= sprintf($lang['Rules_moderate'], "<a href=\"modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id'] . '">', '</a>');

	$topic_mod .= "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=delete&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_delete'] . '" alt="' . $lang['Delete_topic'] . '" title="' . $lang['Delete_topic'] . '" border="0" /></a>&nbsp;';

	$topic_mod .= "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=move&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_move'] . '" alt="' . $lang['Move_topic'] . '" title="' . $lang['Move_topic'] . '" border="0" /></a>&nbsp;';

	$topic_mod .= ( $forum_topic_data['topic_status'] == TOPIC_UNLOCKED ) ? "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=lock&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_lock'] . '" alt="' . $lang['Lock_topic'] . '" title="' . $lang['Lock_topic'] . '" border="0" /></a>&nbsp;' : "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=unlock&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_unlock'] . '" alt="' . $lang['Unlock_topic'] . '" title="' . $lang['Unlock_topic'] . '" border="0" /></a>&nbsp;';

	$topic_mod .= "<a href=\"modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=split&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_split'] . '" alt="' . $lang['Split_topic'] . '" title="' . $lang['Split_topic'] . '" border="0" /></a>&nbsp;';
ersetze gegen:

Code: Alles auswählen

$s_auth_can .= sprintf($lang['Rules_moderate'], "<a href=\"$scriptpath/modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id'] . '">', '</a>');

	$topic_mod .= "<a href=\"$scriptpath/modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=delete&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_delete'] . '" alt="' . $lang['Delete_topic'] . '" title="' . $lang['Delete_topic'] . '" border="0" /></a>&nbsp;';

	$topic_mod .= "<a href=\"$scriptpath/modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=move&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_move'] . '" alt="' . $lang['Move_topic'] . '" title="' . $lang['Move_topic'] . '" border="0" /></a>&nbsp;';

	$topic_mod .= ( $forum_topic_data['topic_status'] == TOPIC_UNLOCKED ) ? "<a href=\"$scriptpath/modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=lock&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_lock'] . '" alt="' . $lang['Lock_topic'] . '" title="' . $lang['Lock_topic'] . '" border="0" /></a>&nbsp;' : "<a href=\"$scriptpath/modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=unlock&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_unlock'] . '" alt="' . $lang['Unlock_topic'] . '" title="' . $lang['Unlock_topic'] . '" border="0" /></a>&nbsp;';

	$topic_mod .= "<a href=\"$scriptpath/modcp.$phpEx?" . POST_TOPIC_URL . "=$topic_id&mode=split&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_mod_split'] . '" alt="' . $lang['Split_topic'] . '" title="' . $lang['Split_topic'] . '" border="0" /></a>&nbsp;';
suche nach:

Code: Alles auswählen

$rank_image = ( $ranksrow[$j]['rank_image'] ) ? '<img src="' . $ranksrow[$j]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
ersetze gegen:

Code: Alles auswählen

$rank_image = ( $ranksrow[$j]['rank_image'] ) ? '<img src="' . $scriptpath . '/' .  $ranksrow[$j]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
suche nach:

Code: Alles auswählen

$rank_image = ( $ranksrow[$j]['rank_image'] ) ? '<img src="' . $ranksrow[$j]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
ersetzen gegen:

Code: Alles auswählen

$rank_image = ( $ranksrow[$j]['rank_image'] ) ? '<img src="' . $scriptpath . '/' . $ranksrow[$j]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
suche nach:

Code: Alles auswählen

		$s_watching_topic = "<a href=\"viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&unwatch=topic&start=$start&sid=" . $userdata['session_id'] . '">' . $lang['Stop_watching_topic'] . '</a>';
		$s_watching_topic_img = ( isset($images['topic_un_watch']) ) ? "<a href=\"viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&unwatch=topic&start=$start&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_un_watch'] . '" alt="' . $lang['Stop_watching_topic'] . '" title="' . $lang['Stop_watching_topic'] . '" border="0"></a>' : '';
	}
	else
	{
		$s_watching_topic = "<a href=\"viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&watch=topic&start=$start&sid=" . $userdata['session_id'] . '">' . $lang['Start_watching_topic'] . '</a>';
		$s_watching_topic_img = ( isset($images['Topic_watch']) ) ? "<a href=\"viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&watch=topic&start=$start&sid=" . $userdata['session_id'] . '"><img src="' . $images['Topic_watch'] . '" alt="' . $lang['Start_watching_topic'] . '" title="' . $lang['Start_watching_topic'] . '" border="0"></a>' : '';
ersetze gegen:

Code: Alles auswählen

		$s_watching_topic = "<a href=\"$scriptpath/viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&unwatch=topic&start=$start&sid=" . $userdata['session_id'] . '">' . $lang['Stop_watching_topic'] . '</a>';
		$s_watching_topic_img = ( isset($images['topic_un_watch']) ) ? "<a href=\"$scriptpath/viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&unwatch=topic&start=$start&sid=" . $userdata['session_id'] . '"><img src="' . $images['topic_un_watch'] . '" alt="' . $lang['Stop_watching_topic'] . '" title="' . $lang['Stop_watching_topic'] . '" border="0"></a>' : '';
	}
	else
	{
		$s_watching_topic = "<a href=\"$scriptpath/viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&watch=topic&start=$start&sid=" . $userdata['session_id'] . '">' . $lang['Start_watching_topic'] . '</a>';
		$s_watching_topic_img = ( isset($images['Topic_watch']) ) ? "<a href=\"$scriptpath/viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&watch=topic&start=$start&sid=" . $userdata['session_id'] . '"><img src="' . $images['Topic_watch'] . '" alt="' . $lang['Start_watching_topic'] . '" title="' . $lang['Start_watching_topic'] . '" border="0"></a>' : '';
suche nach:

Code: Alles auswählen

		$temp_url = "modcp.$phpEx?mode=ip&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&" . POST_TOPIC_URL . "=" . $topic_id . "&sid=" . $userdata['session_id'];
		$ip_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_ip'] . '" alt="' . $lang['View_IP'] . '" title="' . $lang['View_IP'] . '" border="0" /></a>';
		$ip = '<a href="' . $temp_url . '">' . $lang['View_IP'] . '</a>';

		$temp_url = "posting.$phpEx?mode=delete&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&sid=" . $userdata['session_id'];
ersetze gegen:

Code: Alles auswählen

		$temp_url = "$scriptpath/modcp.$phpEx?mode=ip&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&" . POST_TOPIC_URL . "=" . $topic_id . "&sid=" . $userdata['session_id'];
		$ip_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_ip'] . '" alt="' . $lang['View_IP'] . '" title="' . $lang['View_IP'] . '" border="0" /></a>';
		$ip = '<a href="' . $temp_url . '">' . $lang['View_IP'] . '</a>';

		$temp_url = "$scriptpath/posting.$phpEx?mode=delete&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&sid=" . $userdata['session_id'];
öffne viewforum.php und suche nach:

Code: Alles auswählen

$s_auth_can .= sprintf($lang['Rules_moderate'], "<a href=\"modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&start=" . $start . "&sid=" . $userdata['session_id'] . '">', '</a>');
ersetze gegen:

Code: Alles auswählen

$s_auth_can .= sprintf($lang['Rules_moderate'], "<a href=\"" . $scriptpath . "/modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&start=" . $start . "&sid=" . $userdata['session_id'] . '">', '</a>');
öffne bbcode.php und suche nach:

Code: Alles auswählen

function smilies_pass($message)
{
füge danach ein:

Code: Alles auswählen

	global $scriptpath;
suche nach:

Code: Alles auswählen

$repl[] = '<img src="'. $board_config['smilies_path'] . '/' . $smilies[$i]['smile_url'] . '" alt="' . $smilies[$i]['emoticon'] . '" border="0" />';
ersetze gegen:

Code: Alles auswählen

$repl[] = '<img src="'. $scriptpath . '/' . $board_config['smilies_path'] . '/' . $smilies[$i]['smile_url'] . '" alt="' . $smilies[$i]['emoticon'] . '" border="0" />';
suche in includes/usercp_viewprofile.php nach:

Code: Alles auswählen

$avatar_img = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $profiledata['user_avatar'] . '" alt="" border="0" />' : '';
ersetze gegen:

Code: Alles auswählen

$avatar_img = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $scriptpath . '/' . $board_config['avatar_path'] . '/' . $profiledata['user_avatar'] . '" alt="" border="0" />' : '';
suche nach:

Code: Alles auswählen

$avatar_img = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $profiledata['user_avatar'] . '" alt="" border="0" />' : '';
ersetz gegen:

Code: Alles auswählen

$avatar_img = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $scriptpath . '/' . $board_config['avatar_gallery_path'] . '/' . $profiledata['user_avatar'] . '" alt="" border="0" />' : '';
öffne includes/usercp_register.php und suche nach:

Code: Alles auswählen

$avatar_img = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $user_avatar . '" alt="" />' : '';
ersetze gegen:

Code: Alles auswählen

$avatar_img = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $scriptpath . '/' . $board_config['avatar_path'] . '/' . $user_avatar . '" alt="" />' : '';
suche nach:

Code: Alles auswählen

$avatar_img = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $user_avatar . '" alt="" />' : '';
ersetze gegen:

Code: Alles auswählen

$avatar_img = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $scriptpath . '/' . $board_config['avatar_gallery_path'] . '/' . $user_avatar . '" alt="" />' : '';
öffne viewtopic.php und suche nach:

Code: Alles auswählen

$poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $postrow[$i]['user_avatar'] . '" alt="" border="0" />' : ''; 
ersetze gegen:

Code: Alles auswählen

$poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $scriptpath . '/' . $board_config['avatar_path'] . '/' . $postrow[$i]['user_avatar'] . '" alt="" border="0" />' : '';
suche nach:

Code: Alles auswählen

$poster_avatar = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $postrow[$i]['user_avatar'] . '" alt="" border="0" />' : '';
ersetze gegen:

Code: Alles auswählen

$poster_avatar = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $scriptpath . '/' . $board_config['avatar_gallery_path'] . '/' . $postrow[$i]['user_avatar'] . '" alt="" border="0" />' : '';

Änderungen an den Templatedateien: ("subSilver" jeweils gegen Euren Templatenamen tauschen und "www.deinedomain.de/pfad/" gegen Euren Domainnamen und Pfad tauschen!)

öffne templates/subSilver/posting_body.tpl und suche nach:

Code: Alles auswählen

{smilies_row.smilies_col.SMILEY_IMG}
ersetze gegen:

Code: Alles auswählen

http://www.deinedomain.de/pfad/{smilies_row.smilies_col.SMILEY_IMG}
öffne templates/subSilver/subSilver.cfg und suche nach:

Code: Alles auswählen

$current_template_images = $current_template_path . "/images";
ersetze gegen:

Code: Alles auswählen

$current_template_images = 'http://www.deinedomain.de/pfad/' . $current_template_path . "/images";

suche in allen templates/subSilver/Template-Dateien nach: (alle die mit".tpl" enden)

Code: Alles auswählen

<img src="templates/subSilver/images
und ersetze jeweils gegen:

Code: Alles auswählen

<img src="http://www.deinedomain.de/pfad/templates/subSilver/images
Insgesamt fallen bei "subSilver" 25 Änderungen an. Davon betroffen sind die folgenden Dateien: (Die Zahl in den Klammern ist die Anzahl der nötigen Änderungen in der genannten Datei)
- faq_body.tpl (1)
- index_body.tpl (4)
- modcp_split.tpl (2)
- overall_header.tpl (9)
- posting_preview.tpl (2)
- posting_topic_review.tpl (1)
- privmsg_body.tpl (1)
- search_results_posts.tpl (1)
- viewonline_body.tpl (1)
- viewtopic_body.tpl (1)
- viewtopic_poll_result.tpl (2)

Tipp: Solche Massenänderungen kann man unheimlich gut mit dem kostenlosen Programm Weaverslave automatisch erledigen lassen.
Zuletzt geändert von mgutt am 18.05.2006 15:27, insgesamt 24-mal geändert.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Also ich habe bei mir anders gearbeitet.
1. mit $_SERVER['REQUEST_URI'];
Und dann direkt z.B in der viewtopic.php den .html umgewandelt und nicht in der sessions.php

Also das in die viewforum.php einfügen:

Code: Alles auswählen

$uri = $_SERVER['REQUEST_URI'];
if( eregi('.html', $uri) )
{
	$uri = stristr($uri, 'viewforum.'.$phpEx.'/');
	$uri = str_replace('viewforum.'.$phpEx.'/', '', $uri);
	$uri = str_replace('.html', '', $uri);
	$forum_id = intval($uri);
}
die Links sähen dann so aus: www.mydomain.com/phpBB/viewforum.php/1.html, für das Forum mit der ID 1.
Was jetzt in wie weit besser ist weiss ich nicht.
Zuletzt geändert von fanrpg am 29.03.2006 22:48, insgesamt 1-mal geändert.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Und wie sagst du der index.php wie die neuen Urls aussehen?
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag von larsneo »

obacht - iirc gehen bei verzeichnisbasierenden lösungen die automatischen (meta) redirects nach posting/editieren etc. oftmals ins leere und müssen entsprechend angepasst werden.
gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

In dem man in der index.php die URL Zuweisungen ändert.
suche:

Code: Alles auswählen

'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"))
ersetze mit:

Code: Alles auswählen

'U_VIEWFORUM' => append_sid("viewforum.$phpEx/$forum_id.html"))
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

fanrpg hat geschrieben:In dem man in der index.php die URL Zuweisungen ändert.
suche:

Code: Alles auswählen

'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"))
ersetze mit:

Code: Alles auswählen

'U_VIEWFORUM' => append_sid("viewforum.$phpEx/$forum_id.html"))
und genau deswegen mache ich den job nur einmal in der sessions.php, wo die append_sid generiert wird. so sparst du dir viel arbeit.

gruß
larsneo hat geschrieben:obacht - iirc gehen bei verzeichnisbasierenden lösungen die automatischen (meta) redirects nach posting/editieren etc. oftmals ins leere und müssen entsprechend angepasst werden.
bau dir eine posting url im www.wiki-forum.de

der meta geht fehlerfrei :D
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Obwohl in dem Moment frage ich mach was von den Ausführungszeiten länger dauert. Ich denke das in den Funktionen jeweils zu suchen/ersetzen dauert länger von der Ausführungszeit her als wenn man die direkt umschreibt. Obwohl das in den Funktionen garantiert einfacher ist auch einzubauen. Ich für mich persönlich würde micht in dem Fall für meine Variante entscheiden da der Server eh schon lahm ist.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Klar ist Deine Version "schneller", denn Du schreibst nur einen Bruchteil der Urls um. Wenn überhaupt 1%. Das ist ja nicht der Sinn der Sache. Sonst wäre der Code gleich schnell, denn append_sid wird eh bei jeder Url aufgerufen, wo du dann einen replace vornimmst ist egal.

Wenn Du alle Urls umschreiben wolltest bist Du eine ganze weile mit Copy und Paste beschäftigt.

Ziel sollte unter anderem hier der Titel in der Url sein. (nächste Hürde ;) )

übrigens:

Code: Alles auswählen

$PHP_SELF = $_SERVER['REQUEST_URI'];
zeigt das gleiche Ergebnis :cry:

EDIT: Ok, mittlerweile gehts schon mit dem Surfen im Forum. Ich habe der Url jetzt den root hinzugefügt. Das ist zwar nicht schön, aber zum Testen schon weit aus angenehmer.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Also ich habe das jetzt mal ausführlich getestet. (Was heisst ausführlich sondern nen paar Links umschreiben)

Hier: http://gallerie2.sourceforge.net/forum/ ... /gal1.html
Das ist auf meine Art umgeschrieben und ich habs auf der alten Art probiert die Page-Generation Time ist von akzeptablen 0.1 Sec auf 0.5 Sekunden gestiegen auf der alten Art nach meiner gibts nur kleinere Schwankungen > 0.2 Sec. Das meine ich mit der Ausführungszeit.
Natürlich merkt das eh kein Mensch beim Surfen, aber fällt halt auf.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Alte Art / neue Art ?! Ich verstehe nur Bahnhof. :-?
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“