Diese .htaccess
-Regel sorgt dafür, dass eingehende Anfragen über die index.php umgeleitet werden, wenn das mod_rewrite-Modul auf Apache-Servern aktiviert ist. Diese Struktur wird insbesondere in SEO-freundlichen (schönen URL-)Systemen und PHP-Anwendungen mit MVC-Struktur verwendet.
Code-Erklärung:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
Detaillierte Bedeutung:
-
: Diese Regeln funktionieren, wenn
mod_rewrite
installiert ist. Wenn es nicht installiert ist, wird es ignoriert. -
RewriteEngine On
: Aktiviert die URL-Rewrite-Engine. -
RewriteCond %{REQUEST_FILENAME} !-d
: Wird fortgesetzt, wenn die angeforderte Adresse kein physischer Ordner ist. -
RewriteCond %{REQUEST_FILENAME} !-f
: Wird fortgesetzt, wenn die angeforderte Adresse keine physische Datei ist. -
RewriteRule ^(.*)$ index.php [QSA,L]
: Leitet alle anderen Anfragen an die Dateiindex.php
um.
Bedeutung von [QSA,L]
:
-
QSA
(Query String Append): Behält die Abfrageparameter der ursprünglichen URL bei. -
L
(Last): Nach dieser Regel wird keine weitere Umleitungsregel ausgeführt.
Beispiel:
http://siteadi.com/hakkimizda
Wenn diese Anfrage keine physische Datei oder ein Ordner ist, wird sie an index.php
umgeleitet. Auf PHP-Seite kann die Umleitung mit $_SERVER['REQUEST_URI']
oder $_GET
erfolgen.
Anwendungsbereiche:
-
In PHP MVC Frameworks (Laravel, CodeIgniter, Slim)
-
In CMS-Infrastrukturen wie WordPress, Joomla
-
Beim Erstellen eines SEO-freundlichen URL-Systems
Anforderungen:
-
Das
mod_rewrite
-Modul muss auf dem Apache-Server aktiviert sein. -
Die Verwendung von
.htaccess
-Dateien muss mit der BerechtigungAllowOverride All
erlaubt sein.
Diese Struktur wird häufig in dynamischen Webanwendungen verwendet, um die URL-Verwaltung zu vereinfachen und Umleitungen zentral über index.php
zu steuern.