Es gibt mehrere gute Gründe, warum es empfehlenswert ist, die index.php, index.html und index.htm Seite auf die Root-Adresse einer Webseite umzuleiten, wenn diese nicht die Startseite der Webseite ausgeben! Wie man diese Weiterleitung von index.html, index.htm oder index.php vornimmt erfährst du auch in diesem Artikel.
Kurzlösung zur Index-Weiterleitung
Wer WordPress nutzt kann die Weiterleitungen so bei einem Apache mittels der .htaccess-Datei einbauen:
1 2 3 4 5 6 7 8 9 10 |
# !Important! DirectoryIndex index.php # BEGIN_WP # ............ # END_WP # Redirects Redirect 301 /index.html / Redirect 301 /index.htm / |
Wer ein anderes CMS nutzt oder eine selbst geschriebene Webanwendung muss nachschauen welche URL nicht weiterleitet und die passenden Regeln für index.html, index.htm und eventuell auch die index.php nach eigenem Ermessen vornehmen.
Hierbei ist Vorsicht geboten, denn eine falsche 301-Weiterleitung der index.html zum Stammverzeichnis der Webseite kann eine Endlos-Schleife beim Aufruf der Webseite verursachen.
Wieso index.html, index.htm oder index.php weiterleiten?
Zum einen sorgt dies für eine bessere Benutzererfahrung, da Besucher auch mit diesen „alten“ URLs direkt auf der Startseite landen und ihren Einstieg nicht auf deiner Webseite nicht mit einer 404er-Fehlerseite beginnen.
Zum anderen wird dadurch auch die Suchmaschinenoptimierung verbessert, da Suchmaschinen die Startseite normalerweise als wichtigste Seite einer Webseite betrachten und diese somit bevorzugt indexieren. Darüber hinaus kann die Umleitung auch aus Sicherheitsgründen sinnvoll sein, da sie verhindert, dass Besucher auf veraltete oder unsichere Versionen der Startseite zugreifen.
Index-Weiterleitungen bei WordPress einrichten
Bei mit WordPress aufgesetzten Seiten wird ein Aufruf der URL „www.deinedomain.de/index.php“ automatisch mit einem 301-Redirect zur Hauptseite umgeleitet. Das scheint also Standard zu sein und macht auch definitiv Sinn, da jede Anfrage für eine Seite bei diesem CMS über die vorhandene index.php abgewickelt wird.
Aber für die html-Varianten der index-Seite ist nicht berücksichtigt. WordPress arbeitet mit diesen alten Dateien ja nicht, weshalb mich das nicht wundert. Diese werden natürlich nicht als Artikel oder Beitrag in der Datenbank gefunden.
Insbesondere wenn es diese index.html-Seite aber mal gegeben hat, z. B. vor einer Migration zu WordPress, könnte dies bei dem ein oder anderen Backlink zur Anzeige eines 404-Fehlers führen. Auch wenn es ein Randszenario ist, würde ich dies trotzdem abfangen.
Das kann man auf einem Apache-Server z. B. einfach manuell in der .htaccess-Datei machen. Hierzu ergänzt man am Anfang der htaccess-Datei eine Regel und am Ende die Redirects:
1 2 3 4 5 6 7 8 9 10 |
# !Important! DirectoryIndex index.php # BEGIN_WP # ............ # END_WP # Redirects Redirect 301 /index.html / Redirect 301 /index.htm / |
Wichtig ist noch, dass die index.html bzw. index.htm serverseitig nicht mehr als index-Page angesehen werden darf, was durch die Regel „DirectoryIndex index.php“ definiert wird! Ansonsten kann dies zu einer fehlerhaften Serverkonfiguration, zumindest beim Apache führen, und zu unschönen Side-Effects führen.
Index-Weiterleitungen bei anderen CMS und selbst gecodeten Seiten
Bei meinen selbst gecodeten Seiten hatte ich gesehen, dass sowohl der Aufruf der index.php, index.html und index.htm zu einer 404-Meldung führten.
Obwohl jede Unterseite, ähnlich wie bei WordPress, über die index.php mittels einer .htaccess-Regel angefragt wird, gibt es in der Datenbank für diese URLs keinen entsprechenden Eintrag, sondern nur für einen „leeren“ Wert für die Startseite. Diesen hat man natürlich nur, wenn die Startseite über die Domain wie www.deinedomain.de/ ohne weiteren Zusatz wie index.html aufgerufen wird.
Für die index.php, index.html und index.htm müssen dann natürlich noch entsprechende Regeln hinzugefügt werden um auch für diese die Startseite anzuzeigen und keinen Duplicate Content für die Suchmaschine zu generieren!
Da es zu Problemen führte, wenn die index.php als Datei verwendet wird und eine entsprechende Redirect-Regel existierte, habe ich diese Datei, deren Name auch völlig egal ist, umbenennen müssen.
Diese heißt bei meinen eigenen Projekten z. B. nun „process.php“ und die .htaccess-Regel sieht so aus:
1 2 3 |
# send all requests to the process.php RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* process.php |
Die 301-Redirect-Regeln sehen hier dann so aus:
1 2 3 4 |
# Redirects Redirect 301 /index.php / Redirect 301 /index.html / Redirect 301 /index.htm / |
Eine „DirectoryIndex“-Regel sollte man in diesem Fall löschen oder zumindest keine der drei Dateienn für diese nutzen.
Fazit zur Index-Weiterleitung
Es ist aus meiner Sicht auf jeden Fall eine gute Idee, die index.html oder index.htm auf die Root-Domain umzuleiten, um Link Juice zu konsolidieren. Auch für Nutzer die eventuell über eine alte oder fehlerhafte Verlinkung den Weg auf deine Webseite finden landen so auf der Startseite und nicht auf einer Fehlerseite und haben direkt einen vernünftigen Eindruck von einer vollfunktionsfähigen Webseite.