Ich bin dabei, meine Single-Site-WordPress-Installation in eine Multi-Site-Installation umzuwandeln. Ich versuche, das kaputte CSS/JS von meiner Hauptseite aus zu reparieren.
Ich habe derzeit zwei Websites in meinem Netzwerk:
- http://www.beispiel.com (primär)
- http://dev.example.com (sekundär)
Meine Multi-Site-Installation befindet sich in einem Unterverzeichnis, das wir “WordPress“. So sieht der Dateipfad aus public_html/wordpress
.
Mein Ziel ist es, dass keine Seite das Unterverzeichnis “wordpress” in der URL hat. Alles scheint zu funktionieren, außer defektem CSS und JS auf der primären Seite (die sekundäre Seite sieht gut aus).
Beim Untersuchen des Codes zeigen alle CSS- und JS-Aufrufe auf http://www.example.com/wp-content/ aber die Dateien werden dort nicht gefunden. Die Dateien werden gefunden, wenn ich zu gehe http://www.example.com/wordpress/wp-content in meinem Browser. Ich möchte den WordPress-Ordner ausblenden und trotzdem die Dateien abrufen können.
Ich bin verwirrt, wie ich die HTACCESS-Datei einrichten soll. Ich habe bereits einige erste Änderungen daran vorgenommen, um die Multi-Site innerhalb des Unterverzeichnisses zum Laufen zu bringen. Dies waren alles folgende Anleitungen, die ich auf StackOverflow und anderswo online gefunden habe, in Bezug darauf, wie Sie Ihre Site in eine Multi-Site mit Unterverzeichnis verschieben und das Unterverzeichnis ausblenden. Ich habe nichts über die Behebung des defekten CSS/JS-Problems gefunden.
Ich dachte, ich müsste eine oder mehrere von 3 HTACCESS-Dateien aktualisieren.
1.) public_html/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /wordpress/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ /wordpress/index.php [L]
</IfModule>
2.) public_html/wordpress/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>
3.) public_html/wordpress/wp-content/.htaccess
Diese Datei existierte nicht, aber ich habe sie erstellt. Mein Gedanke war, dass Dateien ohne das WordPress-Unterverzeichnis aufgerufen werden, aber sie müssen sich so verhalten, als hätten sie das Unterverzeichnis in sich. Aktuell zum Beispiel http://www.example.com/wp-content/uploads/image.jpg ist aber kaputt http://www.example.com/wordpress/wp-content/uploads/image.jpg funktioniert. Ich möchte, dass es umgekehrt ist, oder ich möchte, dass beide Wege funktionieren.
<IfModule mod_rewrite.c>
RewriteEngine on
# ADD WORDPRESS IF URL DOES NOT HAVE IT
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteRule ^(.*)$ /wordpress/$1
</IfModule>
Ich habe versucht, den verschiedenen HTACCESS-Dateien verschiedene Zeilen hinzuzufügen, aber keine davon hat funktioniert. Ich bin mir auch nicht sicher, mit welcher Zeilennummer ich eine neue Regel einfügen soll. Es ist möglich, dass eine meiner neuen Regeln richtig ist, aber an der falschen Stelle steht. Unten ist eine, von der ich wirklich dachte, dass sie funktionieren würde, aber nicht funktionierte.
RewriteRule ^/wp-content/(.*)$ /wordpress/wp-content/$1 [R=301,NC,L]
Ich denke, die zweite wird generiert, nachdem Sie Multisite aktiviert haben. Wenn es stimmt, ist die richtige Stelle in der ersten “htaccess”-Datei. Sie brauchen die dritte Datei sicher nicht
– BlueSuiter
3. November um 4:20 Uhr
Ja, das ist wahr. Die zweite stammt aus Anleitungen, die ich online gefunden habe, um die Multi-Site-Funktion zu aktivieren. Ich habe die dritte htaccess-Datei entfernt und den Code in die erste htaccess-Datei (die unter public_html root) eingefügt, aber es hat sich nichts geändert.
– Bowlerae
4. November um 1:45