Ich setze WordPress auf eine benutzerdefinierte Art und habe Probleme mit dem Umbenennen von wp-content
. Hier sind die Details:
Ich verwende Amazon AWS als meine Umgebung. Der Standard-Webstamm ist /var/www/html/
. Innerhalb dieses Verzeichnisses habe ich mehrere Projekte mit jeweils einem eigenen Verzeichnis. Also, mein WordPress-Projekt ist in /var/www/html/project01
. Dies führt dazu, dass das WordPress über den Webbrowser über folgende URL http://some-url.com/project01/index.php
: http://some-url.com/project01/index.php
.
Im nächsten Schritt verschiebe ich WordPress-Dateien normalerweise in ein Unterverzeichnis. Also habe ich alle WordPress-Dateien in ein Verzeichnis mit dem Namen red
innerhalb von /var/www/html/project01
dann index.php
aus diesem Unterverzeichnis zurück in das Verzeichnis /var/www/html/project01
kopiert und index.php
wie folgt geändert:
require( dirname( __FILE__ ) . '/red/wp-blog-header.php' );
Dies führte zu der folgenden Verzeichnisstruktur:
/var/www/html | --------project01 | -------- index.php /* modified as described above */ | -------- red | -------- wp-config.php | -------- wp-content | -------- /* Other WordPress files and directories */
Bis jetzt funktioniert alles super und ohne Probleme. Ich kann sowohl auf das Frontend als auch auf den Adminbereich der Site zugreifen.
Der nächste Schritt in meinem Setup ist es, wp-content
als zusätzliche Sicherheitsmaßnahme in etwas anderes umzubenennen. Also habe ich wp-content
in green
. So sieht meine Verzeichnisstruktur jetzt so aus:
/var/www/html | --------project01 | -------- index.php /* modified as described above */ | -------- red | -------- wp-config.php | -------- green /* this is a renamed wp-content directory */ | -------- /* Other WordPress files and directories */
Um das Verzeichnis umzubenennen, sollte wp-config.php
aktualisiert werden, um die vorgenommenen Änderungen zu wp-config.php
ich die hier beschriebenen statementen befolgt und zu wp-config.php
:
define('WP_CONTENT_FOLDERNAME', 'green'); define('WP_CONTENT_DIR', ABSPATH . WP_CONTENT_FOLDERNAME); define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/'); define('WP_CONTENT_URL', WP_SITEURL . 'project01' . '/' . 'red' . '/' . WP_CONTENT_FOLDERNAME);
Ich habe den obigen Code direkt vor der folgenden Zeile in wp-config.php
:
require_once(ABSPATH . 'wp-settings.php');
WICHTIG: Bitte beachten Sie auch, dass der Parameter WP_CONTENT_URL
, den ich in wp-config.php
hinzugefügt wp-config.php
so eingestellt ist, dass er die Änderungen in der oben beschriebenen Verzeichnisstruktur enthält.
Wenn ich nun nach http://some-url.com/project01/index.php
gehe, ist alles in Ordnung und das Front-End der Site wird korrekt angezeigt. Wenn ich jedoch auf http://some-url.com/project01/red/green/wp-admin
gehe, um mich im Admin-Bereich anzumelden, wird die Seite auf http://some-url.com/wp-login.php
umgeleitet http://some-url.com/wp-login.php
im Gegensatz zu http://some-url.com/project01/red/green/wp-login.php
, und ich bekomme einen 404 Fehler.
Meine Frage ist also, was habe ich vermisst? Was muss ich tun, um dieses Problem zu beheben? Gibt es ein Setup, das ich zum Beispiel in .htaccess
? Etwas anderes? Ihre Hilfe wird gerne in Anspruch genommen.
Vielen Dank.
Nur zu deiner Information:
Nachdem ich stundenlang gekämpft hatte, fand ich die Antwort. Die Zeile, die das Problem verursacht hat, ist folgende in meiner wp-config.php
Datei:
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/');
Es stellte sich heraus, dass meine WP_SITEURL
nicht richtig funktioniert, weil ich die Verzeichnisstruktur wie in der Frage beschrieben geändert habe. Also habe ich wp-config.php
geändert und es sieht jetzt so aus:
define('WP_CONTENT_FOLDERNAME', 'green'); define('WP_CONTENT_DIR', ABSPATH . WP_CONTENT_FOLDERNAME); define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/project01/'); define('WP_SITEURL', WP_HOME . 'red/'); define('WP_CONTENT_URL', WP_SITEURL . WP_CONTENT_FOLDERNAME);
Jetzt funktioniert es wie ein Zauber.