WordPress: index.html vor index.php schalten

Wer vor seinen WordPress-Blog eine statische Einstiegsseite (z.B. mit einem zentrierten Logo) schalten möchte, kann dies mit einer eigens erstellten index.html Seite machen. Ein FTP-Zugang und ein paar Kniffe sind jedoch notwendig.

Download vorgefertigte Lösung

Anbei ein Download mit allen notwendigen Dokumenten, die du so grundsätzlich 1:1 für deine Seite benutzen kannst (Links in der index.html-Datei müssen natürlich angepasst werden):

Zum Selbermachen/Anleitung

index.html Datei

Öffne einen Texteditor (nicht Word! Sondern z.B. den „Editor“ von Windows [Start -> Suche -> „Editor“]) und erstelle die von dir gewünschte Einstiegsseite.
Nachfolgend ein Beispiel für eine solche Einstiegsseite mit zentrierten Logo, welches flexibel auf unterschiedliche Bildschirmgrössen (PC, Tablet, Smartphone) reagiert (responsiv).

Du kannst diese Datei einfach in deinem Editor öffnen, die Links, Hintergrundfarbe etc. anpassen und das Ganze unter index.html abspeichern.

Start-Logo

Wenn du deine eben erstelle html-Datei nun im Explorer/Mozilla/etc. öffnest , wirst du feststellen, dass sie gar kein Logo enthält. Dieses kannst du selbst erstellen und als „start-logo.png“ abspeichern. Logo und index.html müssen auf der gleichen Ebene liegen, also im gleichen Ordner (das kannst du ändern, indem du die index.html Datei anpasst). Anbei ein Dummy-Logo zum Download (Rechtsklick, Grafik/Bild speichern unter…) und Test:

start-logo

.htaccess Datei

Du kannst nun dein Start-Logo und die index.html-Datei direkt in deinen WordPress-Ordner hochladen (mittels FTP). Die Dateien müssen im Hauptordner zu liegen kommen, also dort, wo sich auch die index.php Datei befindet.
Nun wirst du feststellen, dass nur noch die index.html-Datei aufgerufen wird! So kann das natürlich nicht bleiben…
Erstelle nun wieder mit dem Editor eine .htaccess Datei mit folgendem Inhalt:

DirectoryIndex index.html index.php

Action php /cgi-php52/php
AddHandler php52 .php

ServerSignature Off
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Speichere das Dokument unter „.htaccess“ (Punkt nicht vergessen!) ab und lade es ebenfalls in deinen WordPress-Hauptordner.

Disable canonical redirects

Noch immer wird nur die index.html Datei aufgerufen. Hier liegt nun das Problem bei WordPress (siehe dazu die WordPress Plugin Seite). Erstelle nun wiederum mit deinem Editor eine Datei mit folgendem Inhalt:

<?php
/*
Plugin Name: Disable Canonical URL Redirection
Description: Disables the "Canonical URL Redirect" features of WordPress 2.3 and above.
Version: 1.0
Author: Mark Jaquith
Author URI: http://markjaquith.com/
*/

remove_filter('template_redirect', 'redirect_canonical');

?>

Speichere diese unter „disable-canonical-redirects.php“ ab und lade sie in dein WordPress PLUGIN-Verzeichnis (wp-content/plugins) hoch. Gehe in den Admin-Bereich deiner WordPress-Seite und aktiviere das von Dir erstellte Plugin.

Permalinks

Nun wirst du feststellen, dass du jetzt zwar von deiner Startseite (index.html) auf deinen Blog gelangen kannst. Wenn Du aber im Blog auf Blog-interne Links klickst, gelangst du wieder zurück auf deine Startseite.

Gehe nun in den Admin-Bereich unter „Einstellungen/Permalinks“ und wähle dort „Benutzerdefinierte Struktur“. Dort musst Du nun
/index.php/%postname%
einfügen (%postname% kann auch durch andere Tags ersetzt werden).

Das war’s!

9 Gedanken zu „WordPress: index.html vor index.php schalten

  1. Christoph

    Hallo

    Kann es sein, dass Deine Lösung in Zwischenzeit nicht mehr funktioniert?
    Ich habe mich an Deine Anleitung gehalten. Ruf ich die index.php auf, will Firefox einen Download starten
    Folgt man dem Plugin Link., wird darauf hingewisen, dass das Plugin veraltet sei und Probleme verursachen könnte.

    Gruss
    Christoph

  2. Markus Beitragsautor

    Hi Christoph

    Das kann durchaus sein, habe keine Seite mehr mit dieser Lösung online. Ob es da unterdessen was Neues gibt, kann ich leider nicht sagen. Falls Du eine Lösung findest, wäre ich natürlich froh um eine kurze Mitteilung! 🙂

    Herzlicher Gruss
    Markus

  3. Markus

    Hi, die Frage ist zwar älter, aber ich schreibe trotzdem.

    1. Wenn ein Download startet, wird php wahrscheinlich nicht interpretiert.
    Eventuell mal folgende zwei Zeilen der htaccess weglassen, da andere PHP Versionen und Einstellungen vorliegen.
    Action php /cgi-php52/php
    AddHandler php52 .php

    2. Das Plugin funktioniert bei mir noch wunderbar. Insbesondere um Wartungsseiten / Übergangsseiten vorzuschalten und WordPress im Hintergrund auf der gleichen Url um- oder aufzubauen.

    VG
    Ein anderer Markus

  4. Bettina

    Vielen Dank, Markus und Markus,
    funktioniert wunderbar!!!

    „zwei Zeilen der htaccess weglassen, da andere PHP Versionen und Einstellungen vorliegen.
    Action php /cgi-php52/php
    AddHandler php52 .php“

    Ist korrekt.

    Grüße
    Bettina

  5. Patrick

    Hi !

    Funktioniert noch 1A, nur wenn man eine feste Startseite in WordPress angelegt hat und innerhalb der Seite auf „home“ klickt, springt er wieder auf die Startseite. Any Ideas ?

    Grüße

  6. Ralf

    Hallo Markus,

    ich habe deine index.html geändert und vor meinen Blog geschaltet.

    Einfach NUR die index.html in das rootverzeichnis = fertig. (ohne htaccess und onhe canonical usw….)

    fastimage.de funktionierte sofort.

    Trotzdem habe ich noch 2 Fragen:

    1) hat die vorgeschaltete Seite IRGENDWELCHE Nachteile (SEO oder andere…)?

    2) der Blog liegt im Ordner wordpress.
    Wenn ich den Blog ins rootverzeichnis schiebe – funktioniert dann die Vorschaltseite index.html auch noch?
    Hätte das Vor- oder Nachteile? (ich frage, weil viele fastimage.de als statische Webseite ohne blog kennen und den WordPress-Blog kennt noch niemand)

  7. Markus Beitragsautor

    Hi Ralf
    Herzlichen Dank für Deine Rückmeldung. Leider kann ich Dir Deine Fragen nicht beantworten, da ich selber keine derartige Seite mehr betreibe und mich derzeit aus Zeitgründen nur noch am Rande mit WordPress etc. beschäftige.
    Vielleicht hat sonst wer eine Antwort bereit?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.