Vor WordPress eine statische index.html Seite vorschalten

ACHTUNG: Dieser Beitrag ist vom 20.12.2012 – seit dem hat sich viel getan.

Manchmal möchte der ein oder andere mal eine Vorschaltseite vor ein existierendes WordPress Blog schalten. Warum auch immer – soll hier egal sein.

Der aller erste Gedanke ist: mache eine index.html Datei, lege sie in das Root Verzeichnis von WordPress und schon wird die index.html statt der index.php beim / Zugriff aufgerufen. Soweit so gut!

Wer jetzt glaubt, er könne sein Blog dann ja noch mit den Aufruf der /index.php sehen, schaut dumm aus der Wäsche! Das funktioniert nämlich nur für WordPress Installationen kleiner 2.7

Bei allen neuen Versionen wird die index.php gehandhabt, dass beim Aufruf alles auf / geroutet wird. Sprich, die Startseite des Blogs ist nicht mehr erreichbar!

index.php und index.html bei WordPress parallel betreiben

„Schuld“ an dem Problem ist eine kleine aber entscheidenden Änderung in der /wp-includes/canonical.php des WordPress Core.

Dort wurde

1. $redirect['path'] = preg_replace('|/index.php/$|', '/', $redirect['path']); 

gegen folgende Zeile ausgetauscht:

2. $redirect['path'] = preg_replace('|/index.php/*?$|', '/', $redirect['path']); 

Der Grund der Änderung war:

If pretty permalinks are enabled, it can be assumed that http://site.com/index.php isn’t needed. Therefore we should redirect all index.php requests to the home URL to avoid duplicate content issues. Plus it just looks better.

Wenn Dich dies nicht stört und Du unbedingt eine index.html vor Dein Blog schalten möchtest, kannst Du also in der /wp-includes/canonical.php einfach 2.) gegen 1.) ersetzen und schon funktioniert es wieder!

Ich danke sehr ChrisThomson für diese Lösung! Hat mir sehr, sehr, sehr geholfen!

Ab jetzt musst Du das natürlich nach jedem WordPress Update immer wieder neu machen!

Autor: Viktor Dite

Veröffentlicht am: 20.12.2012

Letztes Update: 07.01.2019

14 Kommentare