Sidebar
ein-/ausblenden

Das WordPress Weblog in einem Unterorder führen

Plugin für WordPress SEO

Anzeige

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 .

  1. Kopiere die index.php und die .htaccess aus dem bestehenden Blog auf lokal und öffne sie mit einem Editor
  2. Ändere require('./wp-blog-header.php'); in require('./wordpress/wp-blog-header.php');
  3. 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>
    
  4. 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/
  5. Die Permalinks neu erstellen - Optionen --> Permalinks --> Permalink Struktur aktualisieren
  6. 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/');
    

34 Kommentare zu „Das WordPress Weblog in einem Unterorder führen“

  1. 1
    Kommentar von Lisa

    Danke für den Tip. Wollte auch ein zweites Blog in einem Unterverzeichnis eröffnen. hast mir sehr geholfen :-) Gruß

  2. 2
    Kommentar von Micha

    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.

  3. 3
    Kommentar von Frank Bültge

    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?

  4. 4
    Kommentar von Frank Bültge

    @Micha: habe es unter WP 2.1.1 auch nochmal lokal (XAMPP) getestet, sogar ohne .htaccess, und läuft wunderbar.

  5. 5
    Kommentar von Puh

    Funktioniert das auch mit WordPress MU? Leider ließ sich MU nicht im Hauptverzeichnis installieren, daher hab ich es im Unterverzeichnis, nun hätte ich aber gerne das Unterverzeichnis aus der URL ausgeblendet, wie mache ich das? Wäre nett wenn du mir helfen könntest - Danke!

  6. 6
    Kommentar von Puh

    Hat sich erledigt. Zwar hat die Installation von WordPress MU im Hauptverzeichnis nicht funktioniert aber das Verschieben einer Installation aus einem Unterverzeichnis ins Hauptverzeichnis nachdem ich die Pfade in Datenbank und wp-config.php geändert habe.

  7. 7
    Kommentar von Matt

    Vielen Dank, sehr hilfreich.

    in der Tabelle "wp_posts" von WordPressMU gibt es neben der Spalte "post_content" noch eine "guid", in der ebenfalls alte URLs vorkommen. Wozu dient diese Spalte und muss man sie ebenfalls updaten?

    Danke für die Hilfe.

  8. 8
    Kommentar von Frank Bültge

    @Matt: nein, dort muss man nicht updaten, da das keine Links im Content sind, es sind die Links, mit denen WordPress arbeitet.

  9. 9
    Kommentar von Micha

    Vielen Dank für die einfache Erklärung. Wegen der Übersichtlichkeit wollte ich es im Unterordner haben und bin schier verzweifelt. Dank der knackigen Anleitung hab ich es heute geschafft und dabei beschäftige ich mich erst seit einigen Wochen mit WordPress und dem Thema Blog und CMS generell.
    Es macht aber sehr viel Spaß und ich lerne täglich dazu, nicht zuletzt durch Ihre Seite und Ihren sehr guten Anleitungen und Tips.

    Grüße Micha

  10. 10
    Kommentar von Oliver

    Wie ist es wenn keine .htaccess - datei vorhanden ist ? und - Kopiere die index.php und die .htaccess aus dem bestehenden Blog auf lokal und öffne sie mit einem Editor - Ganz rauskopieren oder muss die index.php im alten Verzeichnisse auch bleiben ?

  11. 11
    Kommentar von Oliver

    Habe es so wie in der Anleitung gemacht und ...
    Die style.css wird nicht übernommen und es ist nur noch die Startseite vom Blog erreichbar. )o:
    Die Links werden zwar richtig angezeigt also so wie ich auch haben wollte aber naja !

  12. 12
    Kommentar von Frank Bültge

    @Oliver: wenn das Design fehlt, dann stimmen die Pfade nicht.

  13. 13
    Kommentar von Oliver

    Ganz rauskopieren oder muss die index.php im alten Verzeichnisse auch bleiben ?

    Gruss

  14. 14
    Kommentar von Frank Bültge

    @OLiver: kopieren, nicht verschieben. Im Installationsverzeichnis von WP muss die index.php bleiben.

  15. 15
    Kommentar von Oliver

    Habe das Blog neu installier - Die index.php bearbeitet und ins Hauptverzeichnis kopiert - Habe im Blog die neuen Adressen eingegeben und übernommen - Habe bei united-domains.de "URL-HIDING (versteckte Weiterleitung)" gewählt - Habe über cwcity.de phpMyAdmin aufgerufen und habe die "siteurl" unter wp-options in die alte Adresse umgeändert !

    Nun kann ich mich über die Subdomain von cwcity.de im Adminbereich einloggen ( keine weisse Seite mehr ) und das Blog wird über die Hauptdomain mit Unterverzeichnissen aufgerufen !

    Bei "Umlaut-Domains" ist darauf zu achten das die "Blog-Adresse" in den Einstellungen im WordPress Adminbereich richtig angegeben wird !

    Gruss

  16. 16
    Kommentar von Ulrike

    Das funktioniert problemlos, allerdings habe ich einen unerwünschten Seiteneffekt - ich hoffe, ich kann es verständlich beschreiben:

    * Ich habe parallel zum WordPress-Unterordner mehrere weitere (eine Joomla-Installation und eine Website mit statischem HTML). Es sind jeweils eigenständige Webauftritte, die über separate Domains aufgerufen werden.

    * Nun wird neuerdings in Suchmaschinen z.B. eine Unterseite der Joomla-Site unter der URL der WordPress-Site gefunden: http://www.texte-ulrike-schaefer.de/akw/.../xy.html. http://www.texte-ulrike-schaefer.de ist die Domain der WordPress-Site, /akw/ der Unterordner der Joomla-Site.

    Das ist sehr störend, weil es sich inhaltlich, wie gesagt, um völlig getrennte Webauftritte handelt. Ich vermute, es kommt daher, dass die WordPress-Site-URL noch immer auf das Rootverzeichnis meines gesamten Internetpakets verweist (dort liegen dann .htaccess und index.php und lenken sozusagen erst im zweiten Schritt auf den WordPress-Unterordner um).

    Mir ist nicht klar, wie ich diesen Effekt loswerden kann. Bin für Tipps dankbar.

    Grüße
    Ulrike

  17. 17
    Kommentar von Ulrike

    Sorry, zu früh gefragt - nun hab ichs begriffen:

    * In WordPress die Site-Adress auf die Domain setzen (nicht aufs Unterverzeichnis)
    * Umleitung der Domain über Provider (bei mir strato) auf Unterverzeichnis
    * im Unterverzeichnis .htaccess anpassen:

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    (Mir ist nicht so ganz klar, warum das nötig ist, aber danach hat es jedenfalls geklappt.)
    * Mit Suche-Ersetze Bilder-Links anpassen, wie oben im Post beschrieben.

    Auf diese Weise muss ich nichts WordPress-Spezifisches insRoot-Verzeichnis meines Pakets stellen. Das Problem mit den Suchmaschinen scheint dadurch behoben zu sein.

  18. 18
    Kommentar von Eddy

    Super - hat geklappt. Man muss nur strikt diese Reihenfolge einhalten, sonst sperrt man sich aus.
    Auch Google rafft die Änderung nach kurzer Zeit. Perfekt.

    Dieser Tipp ist Gold wert und gehört in die offiziellen FAQ - das braucht jeder!
    Danke Frank!! Bin begeistert!

  19. 19
    Kommentar von die Verzweifelte ;-)

    Erst einmal vielen Dank an Frank für die schon so oft hilfreichen Tipps hier auf der Seite,
    doch nun muß auch ich einmal persönlich posten und hoffe auf Hilfe.

    Mein Sachstand 3sprachige CMS Webseite mit 1 Gästebuch mit Möglichkeit für Kommentare:

    - WP3.0.5 Multiuser mit Hauptblog und 2 Unterblogs (= deutsch /de/ und englisch /en/)
    - alle im Unterverzeichniss /worpress/ erfolgreich installiert und bis Punkt 4 der Anleitung auch gewünschtes erscheinen der url des Hauptblogs!!

    Doch nun der Knackpunkt - irgendwie bekomm ich es nicht gebacken die url der Unterblogs "ohne" das /wordpress/ Verzeichnis erscheinen bzw. aufzurufen.

    Bsp:
    http.//www.beispiel.de/wordpress/home wurde zu http.//www.beispiel.de/home

    http.//www.beispiel.de/wordpress/de/home soll zu
    http.//www.beispiel.de/de/home werden

    Welche Tabellen müssen denn dafür noch angepasst werde?
    Bei den Permalinks kann ich ja ebenfalls nur das home ändern aber keinen weitern Pfad wie /wordpress/de/home

    Wo ist denn mein Denkfehler oder geht das absolut nicht?
    Ich hab schon so viel ausprobiert und wieder Rückgängig gemacht.
    Ich hoffe einer von Euch hat einen Tipp?

    sonnige Grüße

  20. 20
    Kommentar von Sasa

    Hi brauch dringend rat.
    habe aus versehen diese Einstellung genau anderst rum gemacht.

    "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/"

    Ich habe bei der WordPress Adresse das Verzeichnis raus genommen und bei Blog drin gelassen. Nun kann ich mich nicht mehr einloggen

    Was soll ich machen?

  21. 21
    Kommentar von Frank Bültge

    @Sasa: setze via Konstanten in der wp-config.php die urls, fertig.

  22. 22
    Kommentar von Sasa

    Danke für den Tipp, hat sich aber auch zwischenzeitlich erledigt.

    Gruß
    Sasa

  23. 23
    Kommentar von Petra Klafczenski

    Hallo,

    erstmal vielen Dank für die gute Beschreibung!

    Zwischenzeitlich habe ich WP im Unterordner und kann es über die Domain aufrufen. Soweit hat alles gut geklappt.

    Nun habe ich allerdings das Problem, dass ich die Permalinks einfach nicht geändert kriege. (Ich hätte gern /%postname%/, anstatt der Standardeinstellung.) Aber immer, wenn ich die Permalinkstruktur im Backende ändere, funktioniert hinterher das Design nicht mehr und ich kann dann auch das Blog nicht mehr öffnen. Hast du evtl. auch hierzu eine Lösung??? Das wäre extrem super! Ich kann nirgendwo eine Antwort auf diese Frage finden.

    Danke und noch viel Erfolg
    Petra

  24. 24
    Kommentar von Frank Bültge

    @Petra: htaccess ist korrekt? eventuell stimmen die Adressen für home und siteurl nicht, mal in Tabelle options schauen oder die Werte direkt via Konstante in die wp-config schreiben.

  25. 25
    Kommentar von Petra Klafczenski

    Hallo Frank,

    vielen Dank für deine Antwort - die ich leider jetzt erst entdeckt habe (immer dieser Stress... :) ).

    Also, da ich von diesem Part meiner "Arbeit" leider wenig Ahnung habe, schicke ich dir mal den Inhalt der .htacces-Datei mit:
    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    In der Datenbank unter wp-options steht site-url http://ihr-wegweiser-zum-glueck.de und unter home steht dasselbe.

    Das Blog liegt allerdings im Unterverzeichnis "wordpress". Es ist trotzdem über die Hauptdomain aufzurufen, weil ich bei meinem Webhoster (alfahosting, falls das was zur Sache tut) eine Weiterleitung eingerichtet habe. Vielleicht liegt ja da das Problem? Vielleicht muss ich dann eine andere Einstellung... an welcher Stelle auch immer, machen?

    Puh! Schwer kompliziert, wenn man immer nur so'n Halbwissen hat! Also, falls dir dazu irgendwas Kreatives einfallen sollte, wäre ich ausgesprochen froh!

    Herzliche Grüße und einen schönen Abend.
    Petra

    PS: Jetzt lasse ich mich benachrichtigen, sobald eine Antwort kommt.

  26. 26
    Kommentar von Frank Bültge

    @Petra: wenn du beim Webhoster die Weiterleitung aktiv hast, dann ist der ordner wordpress für WordPress schon das Root, du musst also nichts ändern

  27. 27
    Kommentar von Stefan

    Ich habe mir da nie Gedanken drum gemacht, da ich wusste, dass es funktioniert: Blog in Unterordner installieren und irgendwann später mit den erwähnten Umstellungen übers Root aufrufen. Jetzt habe ich ein Test-Blog in einem Unterordner installiert, das hauptsächlich aus Seiten besteht (nicht aus Artikeln). Manuell gesetzte Links auf andere Seiten des Blogs enthalten also jeweils den Unterordner in der URL. Das kriegt WordPress nicht automatisch gebacken, gell? Wie und wo ersetze ich diese Links?

  28. 28
    Kommentar von Petra Klafczenski

    Hallo Frank,

    ich kann leider immer noch keine Permalinks in die Form /%postname%/ ändern, ohne dass danach mein Blog nicht mehr aufzurufen ist. Muss ich in WordPress-Admin evtl. etwas anderes eingeben als lediglich /%postname%/? Muss ich irgendwo die Root angeben?

    Herzliche Grüße
    Petra

  29. 29
    Kommentar von Frank Bültge

    @Petra: nein; wenn mod_rewrite aktiv ist, dann sollte es auch gehen.

  30. 30
    Kommentar von Petra Klafczenski

    Hallo Frank,

    1000 Dank! Da war der Fehler. mod_rewrite war nicht aktiv.

    Herzliche Grüße
    Petra

  31. 31
    Kommentar von Jan

    Hallo Leute,

    ich habe nach eurer Anleitung versucht auf den unterordner /wordpress/ zu zeigen. aber es geht einfach nicht.. :( bin so langsam echt verzweifelt...

    ich schreibe euch mal was ich gemacht habe.. vllt fällt euch ja noch was ein oder auf..

    die domain zeigt beim hoster (alfahosting) auf root. (hatte ich auch schon umgestellt auf /wordpress/ aber bringt auch nix)

    im root liegen index.php und .htaccess. die habe ich ausm /wordpress/ verzeichnis kopiert und die index.php wie folgt angeglichen.

    require('./wordpress/wp-blog-header.php');

    bei der .htaccess bin ich mir nicht ganz sicher was ich machen soll... bei mir sieht sie jetzt so aus:

    AddHandler x-httpd-php5 .php .php3 .php4 .php5

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /wordpress/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wordpress/index.php [L]

    # END WordPress

    die dateien im /wordpress/ verzeichnis habe ich so gelassen wie sie waren..

    unter myadmin habe ich die seiten so umgebogen wie es oben beschrieben wurde.. kam auch keine fehlermeldung von sql also denke ich, dass es so geklappt hat..

    Warning: require_once(/var/www/web588/html/wp-load.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/web588/html/wp-admin/admin.php on line 30

    die fehlermeldung bekomme ich jetzt grade aktuell:

    Fatal error: require_once() [function.require]: Failed opening required '/var/www/web588/html/wp-load.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/web588/html/wp-admin/admin.php on line 30

  32. 32
    Kommentar von DSIW

    Hallo,
    vielen Dank für den Artikel und die Informationen.
    Ich habe es so gelöst, indem ich eine Subdomain nutze, die auf den Unterordner zeigt. Im root-Verzeichnis habe ich eine PHP-Umleitung eingerichtet, sodass die Subdomain geladen wird.
    Würdest du mir lieber eine andere Herangehensweise empfehlen? Bis jetzt (ein paar Tage) hatte ich damit keine Probleme.
    Danke und Gruß
    DSIW

  33. 33
    Kommentar von Frank Bültge

    @DSIW: wenn dann nimm lieber eine Weiterleitung via htacces oder Einstellung zum Server, php ist dafür weniger geeignet und ist langsamer.

  34. 34
    Kommentar von Michael

    Ähm könnte das ne lösung für mein Problem sein?

    habe meinen 4ten multiside Blog mit statischer Frontpage
    unter der domain http://www.domain.de eingerichtet.

    Die Blog-Seite ist unter zu ereichen unter http://www.domain.de/blog

    wenn ich jetzt auf einen Artikel klicke um diesen zu lesen passiert folgendes:

    wwww.domain.de/%category%/%postname%/ (permalinks sind so gewollt)

    es sollte aber so aussehen:

    http://www.domain.de/blog/%category%/%postname%/

    kann ich das problem damit auch lösen, habe es bei allen Blog mit mit statischer Frontpage.

    Danke im voraus.

Kommentare sind geschlossen.