… der von dir verlinkte Artikel erstaunt mich doch sehr: die wp-config.php ins Hauptverzeichnis verschieben?
Das erläutere ich gerne:
Die .htaccess
sorgt dafür, dass „sprechende Permalinks“ (also URLs, die den Namen der Webseite enthalten) zugeordnet werden können. Dabei wird jeweils geprüft, ob die per URL aufgerufene Datei oder Verzeichnis vorhanden sind (es gibt z.B. eine Datei wp-login.php
oder ein Verzeichnis wp-admin
, die jeweils direkt aufgerufen werden können, aber kein Verzeichnis ueber-uns
, das erst als Webseite „Über uns“ aufgelöst werden muss). Wenn nicht, wird die Anfrage an die index.php
weitergeleitet, die dann wiederum eine Reihe von Skripten auslöst. Hast du die WordPress-Dateien in einem anderem Unterverzeichnis, muss in der index.php
der Pfad angepasst werden, damit diese Skripte aufgerufen werden können.
Da sich die .htaccess
-Regeln auf Unterverzeichnisse vererben, sofern im Unterverzeichnis nicht eine abweichende .htaccess
exisiert, brauchst du grundsätzlich* nur eine .htaccess
.
(*Mitunter wird aber z.B. im Verzeichnis wp-content/uploads
eine zusätzliche .htaccess
angelegt, mit der die Ausführung von PHP-Skripten in diesem Verzeichnis ausgeschlossen wird. Dass soll sicherstellen, dass keine Malware-Skripte als Dateiupload eingebunden werden können. Wir sprechen hier aber schon von einem Spezialfall.)
Die Konfigurationsdatei wp-config.php
wird üblicherweise im Web-Stammverzeichnis zusammen mit den anderen WordPress-Dateien abgelegt. Aus Sicherheitsgründen kann die Datei aber auch in das nächsthöhere, für Webseitenbesucher nicht erreichbare Verzeichnis verschoben werden (was kontrovers diskutiert wurde, vgl. Securing wp-config.php).
Findet WordPress die Datei nicht im Verzeichnis mit den WordPress-Dateien, wird geprüft ob a) die Datei im nächsthöheren Verzeichnis liegt und b) in diesem Verzeichnis keine anderen WordPress-Dateien liegen (um auszuschließen, dass mehrere WordPress-Installationen ineinander verschachtelt installiert wurden und dabei auf die falsche wp-config.php
zugegriffen wird). (vgl. https://core.trac.wordpress.org/browser/trunk/src/wp-load.php#L47)
Werden auf einem Webserver mehrere Webanwendungen parallel betrieben (z.B. zwei oder mehr eigenständige WordPress-Installationen oder eine WordPress-Installation, eine Analyse-Software wie Matomo, eine Cloud-Lösung wie Nextcloud …), ist es zur Vermeidung eines heillosen Durcheinander sinnvoll, die Installationen in eigenen Verzeichnissen anzulegen. Dazu gibt es in der Dokumentation eine eigene Seite: Giving WordPress Its Own Directory.
Die Dokumentation unterscheidet zwei Varianten, bei der entweder alle Webseitenzugriffe in das Unterverzeichnis weitergeleitet werden oder (bei einer Installation, die bereits im Unterverzeichnis erfolgt ist) die index.php
und .htaccess
in das Web-Stammverzeichnis kopiert werden. Die zweite Variante ist häufiger anzutreffen.
Über die wp-config.php
lässt sich die Dokumentation an dieser Stelle nicht weiter aus, aber die Datei kann wie beschrieben sowohl im Web-Stammverzeichnis als auch im Verzeichnis mit den WordPress-Dateien liegen. Mir persönlich ist es lieber, die wp-config.php
sofort (und nicht erst nach Aufruf eines Unterverzeichnisses) zu sehen, weil hier (im Gegensatz zu allen anderen Core-Dateien) gelegentlich Anpassungen nötig sind und ich dazu nicht lange suchen möchte. Deshalb meine Empfehlung, die Datei zu verschieben.
Dass die .htaccess
nicht zwingend kopiert werden muss, weil sie sich auf Unterverzeichnisse vererbt, habe ich bereits erläutert.
Nachtrag: In den erwähnten Kommentaren zur von dir genannten Anleitung wird empfohlen, die URL für siteurl
und home
über Konstanten in der wp-config.php
vorzugeben:
define('WP_HOME','https://www.beispielurl.de');
define('WP_SITEURL','https://www.beispielurl.de');
// Quelle: https://bit.ly/3sO3WLm
Das funktioniert zwar, ist aber nicht ideal, weil dadurch eine spätere Änderung in Einstellungen > Allgemein blockiert wird (Felder werden ausgegraut, weil die Einstellung per Konstante fest vorgegeben wurde). Ich empfehle deshalb, die URLs nach Möglichkeit nicht per Konstante vorzugeben, sondern (nach einem Backup) direkt in der Datenbank zu ändern.
Die Verwendung der Konstante ist sinnvoll, wenn eine Website laufend zwischen Servern für Staging und öffentlich zugängliche Website hin- und hergeschoben werden. Sie kann auch als Notlösung verwendet werden, weil dieser Weg wie gesagt funktioniert, aber eben auch den Wartungsaufwand (etwas) erhöht.
-
Diese Antwort wurde geändert vor 1 Jahr, 2 Monaten von Bego Mario Garde. Grund: Nachtrag