index.php entfernen

Wie entferne ich die index.php aus meiner URL

Zuerst solltet Ihr herausfinden, ob „mod_rewrite“ auf eurem Server aktiviert ist. Bei den meisten Hosting-Anbietern ist diese Funktion bereits bei der Installation aktiviert. Und immer daran denken ein Backup vor solchen Änderungen anzulegen.

Die Permalink Struktur in WordPress anpassen

Hier geht Ihr einfach in Eurem Backend zu dem Punkt Einstellungen, dann zu den Permalinks. Da geht Ihr zu dem Punkt „Individuelle Struktur“. Da entfernt Ihr ganz einfach euren index.php/ Eintrag, wenn Ihr das Datum auch löschen wollt, entfernt alles bis auf /%postname%/. Damit die Einträge dann wie folgt aussehen: www.deine-domain.de/test. Damit sollte die index.php aus der URL verschwunden sein (siehe oben). Falls es Probleme gibt einfach weiterlesen.

Die .htaccess-Datei bearbeiten

Kopiert den folgenden Code in die .htacces Datei. Die sollte in eurem root-folder, also dem Hauptverzeichnis eures Webseitenverzeichnisses sein.


# 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

Das sollte eigentlich genügen, um die index.php aus der URL-Struktur zu entfernen.

Weitere bekannte Probleme die auftreten könnten

Manchmal reichen die oben aufgeführten Schritte nicht um die index.php aus der URL zu entfernen. Was könnte das Problem auslösen? Bei einigen Servern gibt es sehr strenge Sicherheitseinstellungen, hier blockiert die mod_security die Einstellungen und die index.php erscheint weiterhin in der URL der Webseite. Versuchen Sie den untenstehenden Code in die .htaccess über den vorherigen Code einzufügen.


<IfModule mod_security.c>
SecFilterEngine Off
</IfModule>

Was man alles letztes noch prüfen kann ist die config-datei für Apache, das kann unter Umständen auch die .htaccess überschreiben. Schaut auf eurem Server unter /etc/apache2/apache2.conf nach dieser Datei und ändert die Einträge für / und /var/www von AllowOverride None zu AllowOverride All. Dann noch den Apache-Server neustarten und es sollte hoffentlich funktionieren.