Ein weitere Weblog von mir, der sich mit einem ganz anderen Thema beschäftigt, hatte die WordPress-Installation immer in einem Unterordner und es man kann eine statische Seite bauen und dann per php, meta oder JavaScript auf den Weblog verweisen. Schöner wäre es aber, wenn man dies direkt mit WordPress machen kann – und es geht.
Dazu sind nur kleine Veränderungen notwendig. Alle Arbeitsschritte sind im folgenden hinterlegt und ich persönlich empfinde sie besser als eine Weiterleitung mit Hilfe einer php- /html-Seite oder .htaccess .
- Kopiere die index.php und die .htaccess aus dem bestehenden Blog auf lokal und öffne sie mit einem Editor
- Ändere
require('./wp-blog-header.php');
inrequire('./wordpress/wp-blog-header.php');
- Nun die index.php und die .htaccess in’s Root-Verzeichnis kopieren und auch dort die Pfade anpassen (geht aber auch ohne)
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /wordpress/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L] </IfModule>
- Im WP-Admin-Bereich unter Optionen –> Allgemein die Einstellung für die „Blog-Adresse (URL)“ auf das Root-Verzeichnis ändern – http://example.de/ – und die „WordPress-Adresse (URL)“ auf das Unterverzeichnis wordpress verweisen – http://example.de/wordpress/
- Die Permalinks neu erstellen – Optionen –> Permalinks –> Permalink Struktur aktualisieren
- Gibt es schon bestehende Beiträge und Seiten im Weblog, so müssen eventuell gesetzte Links angepasst werden. Dies macht man am besten per SQL.
Achtung: Sicherung der Datenbank im Vorfeld anlegen.
Folgender Befehl ersetzt Zeichenketten:
UPDATE tabellenname SET feldname = replace(feldname, suchstring, ersatzstring);
Nun die Tabellen _posts und _comments durchsuchen. In diesem Beispiel lief WordPress im Unterorder wordpress und somit müssen die Links um den Ordner wordpress gekürzt werden. Das kann natürlich mit jedem String gemacht werden.
UPDATE wp_posts SET post_content = replace(post_content, 'http://example.de/wordpress/', 'http://example.de/');
UPDATE wp_comments SET comment_content = replace(comment_content, 'http://example.de/wordpress/', 'http://example.de/');
Danke für den Tip. Wollte auch ein zweites Blog in einem Unterverzeichnis eröffnen. hast mir sehr geholfen 🙂 Gruß
Hi Frank, ich habe das lokal(xampp) probiert, allerdings habe ich linkprobleme mit den stylesheets (extern und adminsystem). bloginfo(’stylesheet_url‘) verweist dann auf root, nicht aufs blog, ebenso die links der einzubindenden .js files im adminbereich sind auch falsch.
Habe es nie lokal geprüft, vielleicht liegt es an der Abfrage von WP, was ich mir aber eigentlich nicht vorstellen kann. Die Reihenfolge der Änderungen richtig eingehalten?
@Micha: habe es unter WP 2.1.1 auch nochmal lokal (XAMPP) getestet, sogar ohne .htaccess, und läuft wunderbar.