[BETA] SEO phpBB3
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
- dieweltist
- Mitglied
- Beiträge: 1966
- Registriert: 25.07.2006 13:28
- Wohnort: Thüringen
- Kontaktdaten:
@Dave danke. Der Sinn mit der .htaccess ist der, wie ich am Schluss schrieb. Nämlich dass alle solche URLs, wie die vorletzte, jeweils in eine solche umgewandelt werden, wie die letzte URL in meinem Beitrag. Klicke doch auf diese drauf und Du siehst, dass eben dieser Beitrag korrekt aufgerufen wird. Das ist das Prinzip.
Falls miene Rewrite Rule funktioniert, kann jeder wählen, welche Variante der Fehlerbehebung er umsetzen möchte. Oder beide, dann können auch sämtliche URLs aufgerufen werden, wenn die Theadseitenangabe (bspw. -s30) in der URL fehlt.
Es lohnt sich übrigens meines Erachtens sowieso, die Syntax von Mod Rewrite zu erlernen. Man kann nämlich viel damit machen, um URLs wunschgemäß anzupassen. Wie das System jeweils URLs ausgibt, darauf hat Mod Rewrite keinen Einfluss. Sondern nur, dass URLs, die man aufruft, entsprechend umgewandelt werden in so ein Muster, die das System versteht.
Falls miene Rewrite Rule funktioniert, kann jeder wählen, welche Variante der Fehlerbehebung er umsetzen möchte. Oder beide, dann können auch sämtliche URLs aufgerufen werden, wenn die Theadseitenangabe (bspw. -s30) in der URL fehlt.
Es lohnt sich übrigens meines Erachtens sowieso, die Syntax von Mod Rewrite zu erlernen. Man kann nämlich viel damit machen, um URLs wunschgemäß anzupassen. Wie das System jeweils URLs ausgibt, darauf hat Mod Rewrite keinen Einfluss. Sondern nur, dass URLs, die man aufruft, entsprechend umgewandelt werden in so ein Muster, die das System versteht.
- dieweltist
- Mitglied
- Beiträge: 1966
- Registriert: 25.07.2006 13:28
- Wohnort: Thüringen
- Kontaktdaten:
Die .htaccess habe ich grundlegend überarbeitet, weil in dieser zahlreiche Anfängerfehler waren, obwohl ich selbst auch noch ein Mod-Rewrite-Anfänger bin. Da waren jeweils im ersten Teil unnötige Klammern, die weder eine Mengenangabe enthielten, noch im zweiten Teil der Rewrite Rule eine Entsprechung hatten.
Die doch sehr "gefräßige" Mengenangabe .* wurde meines Erachtens oftmals ziemlich unüberlegt angewendet, obwohl es da jeweils besser gewesen wäre, wenigstens das Slash / auszuschließen und/oder die Mengenangabe auf 1 bis unendlich zu begrenzen. Auch wurde stets vergessen, jeweils im ersten Teil der Rewrite Rule den Punkt . vor html zu escapen mit einem Backslash \.
Wenn ich mich jetzt nicht irre, müsste man die letzten beiden Zeilen durch eine ersetzen können, indem man angibt, dass der Slash ein oder kein mal vorhanden sein darf.
Und weil weitere Zeichen folgen dürfen, und somit auch ein Slash /, kann diese Angabe eigentlich sogar ganz entfallen.
Die Angabe, dass jeweils der {QUERY_STRING} mit übergeben werden soll (das ist derjenige Teil der URL, der hinter dem Fragezeichen ist), kann man einfacher mit der Angabe QSA (Query String Append) bewerkstelligen. Das habe ich jetzt hier gelesen: Klick! (Auf dieser Seite nach SESSIONID suchen!)
Die doch sehr "gefräßige" Mengenangabe .* wurde meines Erachtens oftmals ziemlich unüberlegt angewendet, obwohl es da jeweils besser gewesen wäre, wenigstens das Slash / auszuschließen und/oder die Mengenangabe auf 1 bis unendlich zu begrenzen. Auch wurde stets vergessen, jeweils im ersten Teil der Rewrite Rule den Punkt . vor html zu escapen mit einem Backslash \.
Code: Alles auswählen
RewriteEngine on
RewriteBase /
RewriteRule ^[^/]*-f([0-9]*)/[^/]*-t([0-9]+)-s([0-9]+)\.html viewtopic.php?f=$1&t=$2&start=$3&%{QUERY_STRING} [L]
RewriteRule ^[^/]*-f([0-9]*)/[^/]*-t([0-9]+)\.html viewtopic.php?f=$1&t=$2&%{QUERY_STRING} [L]
RewriteRule ^[^/]*-f([0-9]*)/index-s([0-9]+)\.html viewforum.php?f=$1&start=$2&%{QUERY_STRING} [L]
RewriteRule ^[^/]*-f([0-9]*)/ viewforum.php?f=$1&%{QUERY_STRING} [L]
RewriteRule ^[^/]*-f([0-9]*) viewforum.php?f=$1&%{QUERY_STRING} [L]
Code: Alles auswählen
RewriteRule ^[^/]*-f([0-9]*)/? viewforum.php?f=$1&%{QUERY_STRING} [L]
Code: Alles auswählen
RewriteRule ^[^/]*-f([0-9]*) viewforum.php?f=$1&%{QUERY_STRING} [L]
Code: Alles auswählen
RewriteEngine on
RewriteBase /
RewriteRule ^[^/]*-f([0-9]*)/[^/]*-t([0-9]+)-s([0-9]+)\.html viewtopic.php?f=$1&t=$2&start=$3&% [L,QSA]
RewriteRule ^[^/]*-f([0-9]*)/[^/]*-t([0-9]+)\.html viewtopic.php?f=$1&t=$2&% [L,QSA]
RewriteRule ^[^/]*-f([0-9]*)/index-s([0-9]+)\.html viewforum.php?f=$1&start=$2&% [L,QSA]
RewriteRule ^[^/]*-f([0-9]*) viewforum.php?f=$1&% [L,QSA]
- dieweltist
- Mitglied
- Beiträge: 1966
- Registriert: 25.07.2006 13:28
- Wohnort: Thüringen
- Kontaktdaten:
Mir ist aufgefallen, dass der interne Link zum Forum, der unter der Navigation ist, noch eine Nicht-SEO-URL ist.
http://forumtreff.pytalhost.de/dein-erstes-forum-f2/
http://forumtreff.pytalhost.de/viewforu ... =d&start=0
Nicht jede Seite kann über die ursprüngliche dynamische URL aufgerufen werden. Auch dadurch ist es nur noch eingeschränkt möglich, über entsprechende Einfügung von Umleitungsanweisungen in die .htaccess, weitere Möglichkeiten des Aufrufens von bestimmten Forenseiten zu kreieren. Aber auch, wenn man dabei bei den statischen URLs ansetzt, um neue URL-Umleitungen zu realisieren, funktionieren manche Muster gar nicht, die beim Nicht-SEO-phpBB3 noch funktionierten.
Auch kann ich jetzt nicht mehr zwei SEO-phpBB-Boards mit jeweils unterschiedlicher Anzeige von Beiträgen je Seite laufen lassen, was mit der Nicht-SEO-Version ohne umfangreiche Anpassungen möglich war. Sobald ich eine Seite der anderen Installation aufrufe, wird die URL nach dem Aufruf von allein zur ersten zurückgeschaltet.
Ein Forum aufrufen; funktioniert noch.
http://forumtreff.pytalhost.de/viewforum.php?f=2
Einen Thread in einem Forum aufrufen; funktioniert auch.
http://forumtreff.pytalhost.de/viewtopic.php?f=2&t=1
Einen Beitrag eines Threads eines Forums; funktioniert zwar, aber der Beitrag wird mit Anker aufgerufen. Aber die Thread-ID muss stimmen und muss somit bekannt sein. Auch muss die Angabe über die Threadseite in der URL enthalten sein, sonst führt der Link zur ersten Threadseite.
http://forumtreff.pytalhost.de/viewtopi ... =2&t=1&p=1
Einen Beitrag mit Anker eines Threads eines Forums; funktioniert nicht, es erscheint nur das Forum.
http://forumtreff.pytalhost.de/viewtopi ... t=1&p=1#p1
Einen Thread aufrufen; funktioniert.
http://forumtreff.pytalhost.de/viewtopic.php?t=1
Einen Beitrag eines Threads aufrufen; funktioniert zwar, aber der Beitrag wird mit Anker aufgerufen. Aber die Thread-id muss stimmen und muss somit bekannt sein. Auch muss die Angabe über die Threadseite in der URL enthalten sein, sonst führt der Link zur ersten Threadseite.
http://forumtreff.pytalhost.de/viewtopic.php?t=1&p=1
Einen Beitrag mit Anker eines Threads aufrufen; funktioniert nicht, es erscheint nur das Forum.
http://forumtreff.pytalhost.de/viewtopic.php?t=2&p=1#p1
Einen Beitrag aufrufen; funktioniert zwar, aber der Beitrag wird mit Anker aufgerufen.
http://forumtreff.pytalhost.de/viewtopic.php?p=1
Einen Beitrag mit Anker eines Threads aufrufen; funktioniert nicht, es erscheint nur das Forum.
http://forumtreff.pytalhost.de/viewtopic.php?p=1#p1
http://forumtreff.pytalhost.de/dein-erstes-forum-f2/
http://forumtreff.pytalhost.de/viewforu ... =d&start=0
Nicht jede Seite kann über die ursprüngliche dynamische URL aufgerufen werden. Auch dadurch ist es nur noch eingeschränkt möglich, über entsprechende Einfügung von Umleitungsanweisungen in die .htaccess, weitere Möglichkeiten des Aufrufens von bestimmten Forenseiten zu kreieren. Aber auch, wenn man dabei bei den statischen URLs ansetzt, um neue URL-Umleitungen zu realisieren, funktionieren manche Muster gar nicht, die beim Nicht-SEO-phpBB3 noch funktionierten.
Auch kann ich jetzt nicht mehr zwei SEO-phpBB-Boards mit jeweils unterschiedlicher Anzeige von Beiträgen je Seite laufen lassen, was mit der Nicht-SEO-Version ohne umfangreiche Anpassungen möglich war. Sobald ich eine Seite der anderen Installation aufrufe, wird die URL nach dem Aufruf von allein zur ersten zurückgeschaltet.
Ein Forum aufrufen; funktioniert noch.
http://forumtreff.pytalhost.de/viewforum.php?f=2
Einen Thread in einem Forum aufrufen; funktioniert auch.
http://forumtreff.pytalhost.de/viewtopic.php?f=2&t=1
Einen Beitrag eines Threads eines Forums; funktioniert zwar, aber der Beitrag wird mit Anker aufgerufen. Aber die Thread-ID muss stimmen und muss somit bekannt sein. Auch muss die Angabe über die Threadseite in der URL enthalten sein, sonst führt der Link zur ersten Threadseite.
http://forumtreff.pytalhost.de/viewtopi ... =2&t=1&p=1
Einen Beitrag mit Anker eines Threads eines Forums; funktioniert nicht, es erscheint nur das Forum.
http://forumtreff.pytalhost.de/viewtopi ... t=1&p=1#p1
Einen Thread aufrufen; funktioniert.
http://forumtreff.pytalhost.de/viewtopic.php?t=1
Einen Beitrag eines Threads aufrufen; funktioniert zwar, aber der Beitrag wird mit Anker aufgerufen. Aber die Thread-id muss stimmen und muss somit bekannt sein. Auch muss die Angabe über die Threadseite in der URL enthalten sein, sonst führt der Link zur ersten Threadseite.
http://forumtreff.pytalhost.de/viewtopic.php?t=1&p=1
Einen Beitrag mit Anker eines Threads aufrufen; funktioniert nicht, es erscheint nur das Forum.
http://forumtreff.pytalhost.de/viewtopic.php?t=2&p=1#p1
Einen Beitrag aufrufen; funktioniert zwar, aber der Beitrag wird mit Anker aufgerufen.
http://forumtreff.pytalhost.de/viewtopic.php?p=1
Einen Beitrag mit Anker eines Threads aufrufen; funktioniert nicht, es erscheint nur das Forum.
http://forumtreff.pytalhost.de/viewtopic.php?p=1#p1
Zuletzt geändert von dieweltist am 25.06.2008 17:57, insgesamt 4-mal geändert.
- dieweltist
- Mitglied
- Beiträge: 1966
- Registriert: 25.07.2006 13:28
- Wohnort: Thüringen
- Kontaktdaten:
Interne Links der FAQ funktionieren nicht
Beim SEO-phpBB3 funktionieren die Links in der FAQ nicht. Es ist nicht nur bei meinem Forum so, das zur Zeit deaktiviert ist; sondern ich habe auch ein SEO-phpBB3 gefunden. Und bei diesem gehen diese internen Links auch nicht in der FAQ: Klick! Es erscheint jeweils die Forenübersicht (Indexseite).
- dieweltist
- Mitglied
- Beiträge: 1966
- Registriert: 25.07.2006 13:28
- Wohnort: Thüringen
- Kontaktdaten:
- dieweltist
- Mitglied
- Beiträge: 1966
- Registriert: 25.07.2006 13:28
- Wohnort: Thüringen
- Kontaktdaten:
Naja... Das nen posting direkt aufgerufen wird mit anker hat ja an sich schon seinen sinn...
Aber wenn du nen Beitrag direkt aufrufen willst ohne Anker müßtest du folgenden Code ändern:
viewtopic.phpinDann passt es 
Aber wenn du nen Beitrag direkt aufrufen willst ohne Anker müßtest du folgenden Code ändern:
viewtopic.php
Code: Alles auswählen
if ( isset($_GET['p']) && !$hilit_words )
{
$post_url = generate_seourl_topic($topic_data['topic_id'], $topic_data['topic_title'], $topic_data['forum_id'], $topic_data['forum_name']);
$post_url = generate_seo_lastpost($topic_data['topic_replies'], $post_url ) . '#p' . $post_id;
header("HTTP/1.1 301 Moved Permanently");
header("Location: $post_url");
die;
}
Code: Alles auswählen
if ( isset($_GET['p']) && !$hilit_words )
{
$post_url = generate_seourl_topic($topic_data['topic_id'], $topic_data['topic_title'], $topic_data['forum_id'], $topic_data['forum_name']);
$post_url = generate_seo_lastpost($topic_data['topic_replies'], $post_url );
header("HTTP/1.1 301 Moved Permanently");
header("Location: $post_url");
die;
}
