[3.2] Interne Verlinkungen reparieren

Fragen rund um die Installation, Administration und Benutzung von phpBB.
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
Antworten
lathspell
Mitglied
Beiträge: 6
Registriert: 10.12.2016 09:55

[3.2] Interne Verlinkungen reparieren

Beitrag von lathspell »

Hallo allerseits,

ich habe hier ein schon länger bestehendes und mittlerweile in einem phpbb3.2.2 laufendes Forum, das über die Jahre einige male umgezogen ist und dementsprechende mehrere hostnames in unterschiedlichen tlds gesehen hat.

Prinzipiell ist das alles gar nicht schlimm, technisch läuft alles.

Ich habe hier nur einen Schönheitsfehler und zwar haben meine User über die Jahre immer mal wieder absolute interne Verlinkungen vorgenommen. Das ist weitgehend kein Problem, weil ich es serverseitig mit rewrite-rules abfedern kann, ich habe nur dummerweise keinen Zugriff mehr auf ein/zwei DNS-Einträge, wodurch die Verlinkungen, die diesen Namen verwenden, natürlich kaputt sind.

Ich würde jetzt gerne in der Datenbank die Links reparieren, also etwas wie

Code: Alles auswählen

update phpbb_posts set post_text=replace(post_text,"http://forum.domain.altetld/","/") where post_text like 'https://forum.domain.altetld';
ausführen, um damit die alten Hostnamen loszuwerden und relative Links zu erzeugen.

Hierzu hätte ich folgende Fragen:
  • Ist das ein sinnvoller Ansatz oder gibt es hierfür eine andere, bessere Möglichkeit?
  • Ich kann mich daran erinnern, dass ich nach einer ähnlichen Geschichte (damals ging es um die Ersetzung in phpbb nicht vorhandener "BB"-Codes der vorherigen Forensoftware) das stk brauchte, das es für 3.2.0 ja noch nicht gibt. Ist das hierbei auch der Fall?
Mir ist klar, dass ich das in einer Testinstanz ausprobieren könnte, aber bei knapp 800MB Größe des DB-Dumps würde ich mir Export/Transport auf die Teststellung/Import gerne ersparen und dementsprechend gern an Eurem Wissen teilhaben.

TIA

Láthspell
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: [3.2] Interne Verlinkungen reparieren

Beitrag von Mahony »

Hallo

Foren-intern geht das mit einem SQL-Befehl:

Für Links innerhalb vom BBCode URL

Code: Alles auswählen

UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'http://www.alteurl.de', 'http://www.neueurl.de') WHERE post_text LIKE '%http://www.alteurl.de%';
Für normale Links innerhalb eines Beitrags

Code: Alles auswählen

UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'http://www.alteurl.de', 'http://www.neueurl.de') WHERE post_text LIKE '%http://www.alteurl.de%'; 
lathspell hat geschrieben:Ich kann mich daran erinnern, dass ich nach einer ähnlichen Geschichte (damals ging es um die Ersetzung in phpbb nicht vorhandener "BB"-Codes der vorherigen Forensoftware) das stk brauchte, das es für 3.2.0 ja noch nicht gibt. Ist das hierbei auch der Fall?
Ja, das ist auch hier der Fall.
Hier findest Du das STK für phpBB 3.2.2 Deutsch

ACHTUNG: Bitte vor Benutzung des STK IMMER ein Backup der Datenbank anlegen

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
lathspell
Mitglied
Beiträge: 6
Registriert: 10.12.2016 09:55

Re: [3.2] Interne Verlinkungen reparieren

Beitrag von lathspell »

Mahony hat geschrieben: Für Links innerhalb vom BBCode URL

Code: Alles auswählen

UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'http://www.alteurl.de', 'http://www.neueurl.de') WHERE post_text LIKE '%http://www.alteurl.de%';

Hmpf. An die Codierung habe ich nicht gedacht. Danke.
Mahony hat geschrieben: Hier findest Du das STK für phpBB 3.2.2 Deutsch

ACHTUNG: Bitte vor Benutzung des STK IMMER ein Backup der Datenbank anlegen
Ich werde dann schon mal eine Downtime ankündigen und mich danach melden :)
lathspell
Mitglied
Beiträge: 6
Registriert: 10.12.2016 09:55

Re: [3.2] Interne Verlinkungen reparieren

Beitrag von lathspell »

Kurze Rückmeldung:

Ein Ersetzen der kodierten und der unkodierten alten URL durch die neue URL in Klarschrift

also ein

Code: Alles auswählen

UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'http://www.alteurl.de', 'http://www.neueurl.de') WHERE post_text LIKE '%http://www.alteurl.de%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'http://www.alteurl.de', 'http://www.neueurl.de') WHERE post_text LIKE '%http://www.alteurl.de%';
haben ausgereicht. Ein Einsatz des stk war nicht nötig.
Antworten

Zurück zu „Support-Forum“