• Ich möchte mich in eine WordPress-Implementation einarbeiten und sie auch pflegen. Deshalb habe ich mit BackWpup das bestehende System gesichert aund auf meinen PC (Ubuntu) verbracht. Dort läuft schon ein WordPress unter dem Pfad „./wordpress“, das abgezogene System soll den Pfad „./wptest“ bekommen.
    Derzeit ist es unter dem Pfad „./wp“ zu finden.
    Lokal verwende ich kein SSL.

    Das heisst also, die homeurl und siteurl wechseln von „https://<domain-name>/wp&#8220; nach „http://localhost/wptest&#8220;.

    Ich habe auch alles umgezogen, ind der „wp-config.php“ die Datenbank angepasst, in der Tabelle „wp_options“ siteurl und home ebenfalls.

    Aufruf und Administrationslogin funktionieren.

    Es sind noch viele Links in „wp_posts“ und „wp_options“ die auf den alten Pfad fix verweisen (wieso da keine relativen Pfade stehen begreife ich nicht – ist das ein Manko von WordPress?). Das ist Fleissarbeit, lässt sich lösen.

    Jetzt stehe ich vor dem Problem, dass die RestAPI Funktion scheitert. Auf den GET-Aufruf „“http://localhost/wptest/wp-json&#8220; bekomme ich einen 404-Fehler.

    Ich ich habe keine Idee, was der Grund sein könnte. Meine Vermutung ist, dass das Resolving der URL aus irgendeinem Grund nicht funktioniert. Im „debug.log“ ist nichts zu finden. „https://developer.wordpress.org/rest-api/&#8220; hilft auch nicht weiter.

    Deshalb meine Frage hier an die Gruppe.

Ansicht von 10 Antworten – 1 bis 10 (von insgesamt 10)
  • Moderator Michi91

    (@michi91)

    Mit dem Plugin better search and replace die Pfade in der Datenbank ersetzen 🙂

    Anschließend permalinks nochmal neu abspeichern.

    Das ist kein Manko sondern aus diversen Gründen bewusst so gemacht worden 🙂 also zumindest im wordprss core

    Hallo,
    ich könnte mir vorstellen, dass das Problem erledigt ist, wenn du mit dem Plugin Better Search and Replace die Ersetzung der URL in den Tabellen entsprechend vorgenommen hast.
    Viele Grüße
    Hans-Gerd

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    wieso da keine relativen Pfade stehen begreife ich nicht – ist das ein Manko von WordPress?

    Das wird bewusst so gemacht, weil Mediendateien mit absoluten URLs besser von Suchmaschinen verarbeitet werden. (Ausführlichere Erläuterung: Should I Use Relative or Absolute URLs?)

    Das ist Fleissarbeit, lässt sich lösen.

    Bitte nicht. 🙂

    WordPress verwendet teilweise Datenfelder mit serialisierten Daten. Das sind Datenfelder, in denen mehere Informationen stehen, die jeweils mit einer Kennzahl zur Datenlänge unterteilt sind. Änderst du nur die Information (und damit die Länge der Daten), ohne die Angabe der Datenlänge anzupassen, werden die Daten von WordPress falsch ausgelesen.

    Plugins wie das hier bereits genannte Better Search Replace nehmen eine korrekte Ersetzung vor, in dem beides angepasst wird: die Daten und die Angaben der Datenlänge.

    Auf den GET-Aufruf http://localhost/wptest/wp-json bekomme ich einen 404-Fehler.

    Das kann verschiedene Gründe haben, aber wahrscheinlich fehlen die Permalinkeinstellungen.

    Thread-Starter udsn

    (@udsn)

    Danke für die Antworten. Ich habe auch schon mal im Datenbank-Dump die Pfade mit Replace-All geändert und auch mit Better Search And Replace.

    Das hilft, zumindest mir hier, Beides nicht. Ist irgendwem das Programm bekannt, das die Adressauflösung macht. Die URL bis zum Root-Pfad ist ja klar, aber da hinter. So sind die Pfade die in der URL hinter dem Root-Pfad genannt sind ja keine echten Directories sondern Schlüsselwörter, mit denen die Datenbank adressiert wird.

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Ich habe auch schon mal im Datenbank-Dump die Pfade mit Replace-All geändert …

    Falsch. 🙂

    … und auch mit Better Search And Replace.

    Richtig. 🙂

    Ist irgendwem das Programm bekannt, das die Adressauflösung macht.

    Das erfolgt über eine Weiterleitungsregel in der .htaccess: alle Adressen werden an WordPress über die index.php weitergegeben und dann mit den Datenbankeinträgen abgeglichen.

    Hast du die Permalinks neu gesetzt?
    Wurde eine .htaccess in htdocs/wptest/ angelegt?
    Enthält die .htaccess die Weiterleitungsregeln von WordPress?

    Thread-Starter udsn

    (@udsn)

    „Das kann verschiedene Gründe haben, aber wahrscheinlich fehlen die Permalinkeinstellungen.“

    Ich will ja nicht undankbar klingen, aber das war so so ziemlich meine Frage. Die Datenbank und auch die Scripte sind eins zu eins übernommen. „home“ und „siteurl“ und „wp-config.php“ sind angepasst. Ansonsten ist alles wie im Original-System. Wirklich fehlen kann nichts. Und wie gerade vorher geschrieben, ich habe auch mit „Better Search and Replace“ die URLs geändert.

    ich würde gerne verstehen, wie die URL aufgelöst ist. Beispielsweise wird eine Seite namens „Verein“ wird in der tabelle „wp_posts“. abgelegt. Dort gibt es sie in mehreren Versionen – als publish und mehrere „revisionen. Die URL http://<domain>/wptest/verein könnte also via „SELECT * FROM wp_posts WHERE post_name = ‚verein'“ aufgelöst werden. So simpel funtkioniert es aber sicher nicht – ich habe mir alle posts zu „verein“ angesehen, da kann ich nichts feststellen. Für den Seiteninhalt würde das ausreichen, es ist alles da (auch die Sequenz), aber es gibt wohl noch andere Referenzen.

    Diese Ablauflogik würde ich gerne verstehen.

    Thread-Starter udsn

    (@udsn)

    „Hast du die Permalinks neu gesetzt?“

    Die Permalink-Regeln in den Einstellungen sehen gut aus. (Ich gebe den jetzigen Stand der Datenbank wieder. Ich habe alles Mögliche schon probiert und immer wieder von Neuem angefangen. Derzeit wurde in der Datenbank, wie schon beschrieben, „home“ und „siteurl“ angepasst. Und mit „Better Search&Replace“ die Einträge „https:<alte-domäne>/wp“ und „http:<alte-domäne>/wp“ auf „http://<neue-domäne>/wptest&#8220; angepasst).

    Die Permalink-Darstellung, wenn ich sie aufrufe, sieht aus wie ich sie auch machen würde.

    „Wurde eine .htaccess in htdocs/wptest/ angelegt?“

    Es wurde die Bestehende übernommen.

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /wp/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wp/index.php [L]
    </IfModule>

    „Enthält die .htaccess die Weiterleitungsregeln von WordPress?“
    Die Regel „RewriteBase /wp/“ fällt mir jetzt erst auf. Ich muss mich mal schlau machen wie die genau wirkt. Aber sie sieht so aus, als könnte sie „wptest“! überschreiben.
    Aber es ist im Directory „wptest“, also kann es da vermutlich nichts mehr kapput machen.

    Ich habe das Testsystem jetzt einfach mal in dem Ordner „wp“ angelegt (URL ist jetzt also „http:<neue-domain>/wp“) habe immer noch den 404-Fehler.

    Moderator Michi91

    (@michi91)

    Datenbank-Dump die Pfade mit Replace-All

    Ganz blöd… Da kannst direkt nochmal nen Dump von der original Seite ziehen und importieren… Es werden sehr viele Daten serialisiert gespeichert und ein SQL command replace wird diese serialisierung zerstören.

    Die Permalink-Regeln in den Einstellungen sehen gut aus

    Du sollst die Permalinks neu abspeichern… Durch das abspeichern werden verschiedene Dinge neu gesetzt.

    Meiner Ansicht nach hätte sogar deine htaccess mit richtiger base neu erstellt werden sollen. Das ist aber nur ne Annahme von mir, hab ich nicht getestet.

    Das die Base falsch ist, ist sicher ein Grund, wenn nicht sogar der Grund das wp json nicht funktioniert.

    Moderator Michi91

    (@michi91)

    Diese Ablauflogik würde ich gerne verstehen

    /Verein wird u.a. Mit Hilfe von https://developer.wordpress.org/reference/functions/url_to_postid/ in eine Post ID umgewandelt.
    Vereinfacht gesagt wird diese Id dann verwendet um den Post zu selecten.

    In den Developer Docs finden sich Infos zum Main Query, das ist auch noch interessant in diesem Zusammenhang

    • Diese Antwort wurde vor 4 Jahren, 1 Monat von Michi91 geändert.
    Thread-Starter udsn

    (@udsn)

    Zunächst mal Danke für die Antworten. ich bin noch nicht wieder dazu gekommen, das Thema nochmal aufzugreifen. Ich werde hier aber wieder posten, sobald ich neue „Erkenntnisse“ habe.

Ansicht von 10 Antworten – 1 bis 10 (von insgesamt 10)

Das Thema „Domain und Pfadnamen ändern“ ist für neue Antworten geschlossen.