Seite 1 von 1

Posts per Page phpbb nachträglich ändern

Verfasst: 13.10.2011, 19:33
von marc77
Hallo,

aktuell ist in meinen Foren der Wert posts_per_page auf 25 eingestellt. Dies bedeutet, dass nach 25 Posts automatisch eine 2te Seite entsteht.

Diesen Wert würde ich nun gerne wie auch bei Abakus auf 15 senken.

Dadurch entstehen auf einen Schlag natürlich viele 2te Seiten. Das Hauptproblem ist aber, dass z. B. die erste Seite nicht mehr s25.html heisst sondern s15.html. Die Seite s25.html ist aber trotzdem noch aufrufbar. Bei Folgeseiten ist das natürlich auch so. Da es die Seiten dann auch gibt und aufrufbar sind, würde Google die Seiten nicht mehr entfernen. Mit 301 arbeiten kann ich hier nicht, da der Wert nach dem s variabel bleiben muss.

Würdet Ihr den Wert mit ruhigem Gefühl umstellen oder besteht Gefahr?

Bin mir unsicher....

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 14.10.2011, 00:32
von [btk]tobi
Falls du meinen SEO phpBB Mod verwendest wird ein 301 gesendet wenn die Zahl nicht stimmen kann, also falls 15 eingestellt wurde und jemand s25 aufruft wird per 301 auf die erste Seite umgeleitet.
Schau dir mal den Code um Zeile 89 in meiner functions_seophpbb.php an. Ausporbieren kannst du das ganze z.B. unter https://www.phpbb-seo.de/forum/fragen-z ... 6-s10.html die Zahl hinter s muss durch 10 Teilbar sein da 10 Beiträge pro Seite angezeigt werden.

Gruß Tobi

Verfasst: 14.10.2011, 08:23
von marc77
Hallo Tobi,

super, dass Du Dich gemeldet hast.

Verstehe, wenn ich z. B.

https://www.phpbb-seo.de/forum/fragen-z ... 6-s13.html

(hinten 13) setze, springt er auf die erste Seite. Perfekter 301. So würde ich mir das wünschen.

Ja, ich nutze Deinen phpbb Mod allerdings phpbb 2.0. und dort ist es so, dass es wohl diese Funktion mit dem "Teilbar" nicht gibt... d.h. ich kann hinten einfach tippen was ich will und es entsteht kein 301. Es ist dann einfach so, dass er aufgrund der Zahl hinten die Posts zusammenbaut also einen 200er sendet.

Ein 301 entsteht nur dort, wo z. B. der Titel anders geschrieben wird. Hier baut Dein Mod dann aufgrund der topic ID den neuen Titel zusammen und macht einen 301. (was ich im übrigen super finde, da man ja öfter mal falsch verlinkt wird.)

Leider kann ich aufgrund der starken Modifikation des Forums keinen Umzug durchführen.

Wäre es irgendwie möglich, dass man dieses mit dem "teilbar" auch bei mir einbaut? Gerne kann ich mal die sessions.php und page_header.php posten. (müsste dort sein oder?)

Gruß
Marc

Verfasst: 14.10.2011, 10:05
von marc77
Nachtrag:

Es ist wohl die page_header.php . Dieser Teil:

Code: Alles auswählen

if ($vtopic AND $HTTP_GET_VARS['t']) {
	$keyurl=$page_title_url;
	
	$search = array&#40; 'Ö', 'Ä', 'Ü','ö', 'ä', 'à', 'é', 'è', 'ü', 'ß', '°', '²', '³','§', '$', '%', '=', '`', '´', '|', '€', 'µ', '~',' ', '.', ',', "'", '"', '#','"', '&','+','>', '<', '!', '?','&#123;','&#125;','&#91;', '&#93;', '/','\\', ";", "&#41;", "&#40;", '&#58;', '_', '*', '@', '^', '&','---', '--', '–'&#41;; 

  $replace = array&#40;'oe', 'ae', 'ue', 'oe','ae', 'a', 'e', 'e', 'ue','ss', '', '', '', '', '','', '', '', '', '', '', '', '', '-', '-', '', '', '','', '', 'und','und', '', '', '', '', '','', '', '', '-', '', '', '', '', '', '-', '', '', '','und', '-', '-', '-'&#41;; 


	$keyurl=str_replace&#40;$search, $replace, "$keyurl"&#41;;
	$keyurl = strtolower&#40;$keyurl&#41;;
	$seite = $_SERVER&#91;'REQUEST_URI'&#93;;
	if &#40;strrpos&#40;$seite,'/'&#41; > 0&#41;
	$seite = substr&#40;$seite, strrpos&#40;$seite,'/'&#41;&#41;;
	$start=$HTTP_GET_VARS&#91;'start'&#93;;
	$tid=$HTTP_GET_VARS&#91;'t'&#93;;
	if &#40;$seite !="/$keyurl-t$tid.html" and $seite != "/$keyurl-t$tid-s$start.html"&#41; &#123;
		header&#40;"HTTP/1.1 301 Moved Permanently"&#41;;
	if &#40;intval&#40;$start&#41; > 0&#41;
		header&#40;"Location&#58; $keyurl-t$tid-s$start.html"&#41;;
	else
		header&#40;"Location&#58; $keyurl-t$tid.html"&#41;;
	&#125;
		
&#125;
Dort mit rein müsste dann sowas wie im phpbb3

Code: Alles auswählen

// on the right page?
	if&#40;&#40;$start && &#40;$total_posts < $config&#91;'posts_per_page'&#93;&#41;&#41; || &#40;$start > $total_posts&#41; || &#40;!is_int&#40;$start/$config&#91;'posts_per_page'&#93;&#41;&#41; &#41;
	&#123;
		$script_path = &#40; $config&#91;'script_path'&#93; != '/' &#41; ? $config&#91;'script_path'&#93; . '/' &#58; '/';
		$req_addon_sid = &#40; isset&#40;$_GET&#91;'sid'&#93;&#41; &#41; ? '?sid=' . $_GET&#91;'sid'&#93; &#58; '';
		$needed_forum_url = $script_path . $forum . '/' . title_to_url&#40;$topic_data&#91;'topic_title'&#93;&#41; . '-t' . $topic_data&#91;'topic_id'&#93; . '.html' .$req_addon_sid;
		header&#40;"HTTP/1.1 301 Moved Permanently"&#41;;
		header&#40;"Location&#58; $needed_forum_url"&#41;;
		die;
	&#125;
Würdest du mir das bitte zusammenbauen? Im 3er gibt es andere variabeln, die bei mir nicht passen. Danke, wäre super.

Verfasst: 15.10.2011, 15:01
von marc77
es ist immer wieder deprimierend wenn man stundenlang an was rumdoktert wo andere 5 Minuten brauchen :(

Das bedeutet doch:

if(($start && ($total_posts < $config['posts_per_page'])) || ($start > $total_posts) || (!is_int($start/$config['posts_per_page'])) )

if $start

Wenn es eine Seite gibt

$total_posts < $config['posts_per_page']

Wenn die gesamten Posts kleiner sind als die Anzahl der im Board eingestellten Beiträge per Topic

$start > $total_posts

Wenn die Seitenzahl größer ist als die gesamten Posts

!is_int($start/$config['posts_per_page']

Wenn die Seitenzahl durch die Anzahl der im Board eingestellen Beiträge per Topic teilbar ist


soweit bin ich jetzt

// on the right page?
if(($start && ($total_posts < $board_config['posts_per_page'])) || ($start > $total_posts) || (!is_int($start/$board_config['posts_per_page'])) )
{

header("HTTP/1.1 301 Moved Permanently");
header("Location: $keyurl-t$tid.html");
die;
}

Warum klappt das nicht? :(
ich brauch Hilfe. danke

Verfasst: 15.10.2011, 15:12
von [btk]tobi
$board_config mit global $board_config geholt?
$total_posts mit an die Funktion übergeben oder per global geholt?

Lass dir am besten einfach mal die Variablen ausgeben dann siehst du ja was für Werte sie haben. Oder du machst das erst mal in kleineren Teilen, also erst
$total_posts < $board_config['posts_per_page']
wenn das funktioniert
$start > $total_posts
und dann
!is_int($start/$board_config['posts_per_page'])
so siehst du leichter wo genau das Problem liegt.

Ich hab leider grad kein Zugang zu meinem phpBB2 Testforum, kann das also frühestens heute abend wenn ich zuhause bin probieren.

Verfasst: 15.10.2011, 16:30
von marc77
Danke für die schnelle Antwort.

$board_config müsste verfügbar sein, da weiter unten auch if ( $board_config['gzip_compress'] ) zu finden ist.

$total_posts finde ich nicht.

Wäre super, wenn Du heute Abend mal reinschaust und vielleicht eine Lösung hast.
Danke für deine Zeit.