Problem mit RewriteRule nach phpBB Forenupdate

phpBB 3.0 hat sein "End of Life" erreicht. Eine Neu-Installation wird nicht mehr unterstützt.
Gesperrt
Joerg
Mitglied
Beiträge: 3
Registriert: 01.03.2009 21:50

Problem mit RewriteRule nach phpBB Forenupdate

Beitrag von Joerg »

Hallo allerseits,

ich habe die letzten Tage ein mehrere Jahre unter phpNuke laufendes phpBB-Forum 2.05 auf die aktuelle 3.04 plain upgedatet.
Die Konvertierung hat nach einigen großen und kleineren Problemchen auch geklappt, alle gewünschten Threads und User sind im Neuen Forum.

In Suchmaschinen und auf einigen Webseiten finden sich aber noch viele DeepLinks in das alte Forum, welches aber inzwischen offline ist. Diese Links gehen zur Zeit mittels php auf die Startseite des neuen Forums.
Geht zwar, aber schöner wäre doch, die Thread bzw. Posting Nummern mit zu übergeben. Noch dazu wo die Nummerierung mit dem alten Forum identisch ist.

Um das Problem zu lösen, wollte ich die Aufrufe mittels RewriteRule in der .htaccess konvertieren.

Und zwar möchte ich beim Aufruf aus
alt:

Code: Alles auswählen

www.roboter-teile.de/modules.php?name=Forums&file=viewtopic&p=1188
neu:

Code: Alles auswählen

www.roboter-teile.de/phpBB3/viewtopic.php?&p=1188
machen.

Das Mittel meiner Wahl in der .htaccess lautet dazu:

Code: Alles auswählen

RewriteRule ^modules.php?name=Forums&file=viewtopic&([^\.]+)$ phpBB/viewtopic.php?$1
Allerdings funktioniert das nicht wie es soll :-(
Vielleicht hat ja jemand eine Idee?

THX und Viele Grüße
Jörg
Benutzeravatar
buegelfalte
Mitglied
Beiträge: 759
Registriert: 16.02.2005 14:32
Wohnort: Köln
Kontaktdaten:

Re: Problem mit RewriteRule nach phpBB Forenupdate

Beitrag von buegelfalte »

Moin,

der Pfad stimmt nicht: "phpBB3" sollte es statt "phpBB" heißen, mit der Korrektur könnte es schon funktionieren ;)

Aber auch die Variable könnte man anders abfragen (vor allem ist "?&" in deinem neuen Code überflüssig, "?" reicht, wenn nur eine Variable übergeben wird) - wenn immer "p" übergeben wird, mußt du nur abfragen, ob dahinter eine Zahl kommt und nicht den kompletten Teil des Query-Strings parsen:

Code: Alles auswählen

RewriteRule ^modules.php?name=Forums&file=viewtopic&p=([0-9]*)$ /phpBB3/viewtopic.php?p=$1
Nicht getestet, erscheint mir aber "logischer".
Auch würde ich vielleicht noch "[L]" anhängen (einfach hinter die RewriteRule, mit einem Space davon getrennt), damit keine weitere Regel ausgeführt wird, oder besser noch [R=301,NC,L], damit wird zusätzlich die Groß-/Kleinschreibung nicht beachtet und der Server gibt einen "301"-Fehler aus, was z.B. Google sagt, daß die Seite umgezogen ist ("moved permanently"), damit verlierst du deinen Pagerank für die Seite nicht.

B.
http://www.beehave.de - home of humbug - und zocken !
[kein Support per PN]
Joerg
Mitglied
Beiträge: 3
Registriert: 01.03.2009 21:50

Re: Problem mit RewriteRule nach phpBB Forenupdate

Beitrag von Joerg »

Hallo B.

vielen Dank für die schnelle Antwort.
der Pfad stimmt nicht: "phpBB3" sollte es statt "phpBB" heißen, mit der Korrektur könnte es schon funktionieren ;)
hmm ja, das war der halbherzige und zugegenermaßen idiotische Versuch die wahren Verhältnisse auf meinem Server leicht zu verschleiern. Also phpBB ohne 3 ist korrekt. Steht ja so auch in der RewriteRule noch drin.
Aber auch die Variable könnte man anders abfragen (vor allem ist "?&" in deinem neuen Code überflüssig, "?" reicht, wenn nur eine Variable übergeben wird) - wenn immer "p" übergeben wird, mußt du nur abfragen, ob dahinter eine Zahl kommt und nicht den kompletten Teil des Query-Strings parsen:
Jetzt wird es interessant. Im Internet stehen die verschiedensten Konstrukte, einmal mit p= (Postingnummer), aber auch mit t= (Threadnummer). Danach kommen u.U. noch weitere Parameter, z.B. highlight oder auch #(Postingnummer). Ich wollte eigentlich diesen ganzen Wust so weitergeben wie er ist. Habe auch getestet, dass das neue Forum damit klarkommt, auch wenn z.B. der highlight Parameter nicht funktioniert, da er nach hilit umbenannt werden müsste. Ist mir aber zu aufwändig. Es reicht schon wenn man von einer Website oder Suchmaschine an die richtige Stelle im neuen Forum kommt.

Code: Alles auswählen

RewriteRule ^modules.php?name=Forums&file=viewtopic&p=([0-9]*)$ /phpBB3/viewtopic.php?p=$1
Nicht getestet, erscheint mir aber "logischer".
OK, geht aber dann von einer einfachen Zahl als Parameter aus, die immer als Postingnummer interpretiert wird.
Auch würde ich vielleicht noch "[L]" anhängen (einfach hinter die RewriteRule, mit einem Space davon getrennt), damit keine weitere Regel ausgeführt wird, oder besser noch [R=301,NC,L], damit wird zusätzlich die Groß-/Kleinschreibung nicht beachtet und der Server gibt einen "301"-Fehler aus, was z.B. Google sagt, daß die Seite umgezogen ist ("moved permanently"), damit verlierst du deinen Pagerank für die Seite nicht.
Das habe ich ja in php auch bereits schon so gemacht.
Vielleicht ist es doch besser auch diese Parameterkonvertierung in php zu machen (modules.php), ich dachte nur mit einer Zeile in der .htaccess wäre alles gegessen.

THX und Viele Grüße
Jörg
Benutzeravatar
buegelfalte
Mitglied
Beiträge: 759
Registriert: 16.02.2005 14:32
Wohnort: Köln
Kontaktdaten:

Re: Problem mit RewriteRule nach phpBB Forenupdate

Beitrag von buegelfalte »

Joerg hat geschrieben:OK, geht aber dann von einer einfachen Zahl als Parameter aus, die immer als Postingnummer interpretiert wird.
Richtig, so war ja auch dein Beispiel ;)

Wenn du mehrere Parameter hast, kannst du für die anderen Parameter weitere Rules anlegen (für "t" z.B.).
Zusätzlich kannst du mit "[QSA]" in der .htaccess den Query-String trotz mod_rewrite einfach "durchreichen", dann geht dir auch "highlight" nicht verloren.
Oder aber die URL so parsen, wie du es vorher gemacht hast :)
Joerg hat geschrieben:Vielleicht ist es doch besser auch diese Parameterkonvertierung in php zu machen (modules.php), ich dachte nur mit einer Zeile in der .htaccess wäre alles gegessen.
Für mich sieht es so aus, als könnte man das mit einer Zeile in der .htaccess erledigen - aber ich kenne auch die "Parameterkonvertierung" nicht, benutze immer noch phpBB2 :)

B.
http://www.beehave.de - home of humbug - und zocken !
[kein Support per PN]
Joerg
Mitglied
Beiträge: 3
Registriert: 01.03.2009 21:50

Re: Problem mit RewriteRule nach phpBB Forenupdate

Beitrag von Joerg »

Hallo B.

habe jetzt erstmal ein paar Anstöße das weiter zu verfolgen und werde mich gegebenenfalls hier nochmal melden.

Nochmal vielen Dank für Deine Hilfe.

Viele Grüße
Jörg
Gesperrt

Zurück zu „[3.0.x] Installation, Update und Konvertierung“