Seite 1 von 14

SEF Urls

Verfasst: 29.03.2006 21:37
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.

Verfasst: 29.03.2006 22:30
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.

Verfasst: 29.03.2006 22:36
von mgutt
Und wie sagst du der index.php wie die neuen Urls aussehen?

Verfasst: 29.03.2006 22:39
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.

Verfasst: 29.03.2006 22:41
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"))

Verfasst: 29.03.2006 22:43
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

Verfasst: 29.03.2006 22:45
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.

Verfasst: 29.03.2006 22:54
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.

Verfasst: 29.03.2006 23:32
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.

Verfasst: 29.03.2006 23:39
von mgutt
Alte Art / neue Art ?! Ich verstehe nur Bahnhof. :-?