2009-08-18 6 views

Antwort

4

Ein wenig mehr im Detail:

  • <IfModule mod_rewrite.c>
    Der Inhalt eines <IfModule> block werden nur verarbeitet, wenn die Bedingung erfüllt ist. In diesem Fall werden die enthaltenen Anweisungen nur verarbeitet, wenn das Modul mod_rewrite geladen ist.

  • RewriteEngine On
    RewriteEngine On benötigt, um die Rewriting Engine für dieses Verzeichnis und dessen Unterverzeichnissen zu ermöglichen.

  • RewriteBase /
    RewriteBase / setzt die pro-Verzeichnisbasis URL-Pfad zu /. Dies ist jedoch nur erforderlich, wenn der URL-Pfad nicht der physische Pfad ist.

  • RewriteCond %{REQUEST_FILENAME} !-f
    Diese Bedingung besagt, dass der angeforderte Dateiname (der angeforderte URL-Pfad zum Dateisystem abgebildet) darf keine reguläre Datei sein.

  • RewriteCond %{REQUEST_FILENAME} !-d
    Das gleiche wie zuvor, aber es muss nicht ein existierendes Verzeichnis sein.

  • RewriteRule . /index.php [L]
    Diese Regel wird jede nicht leeren URL-Pfad entspricht (genauer: der angeforderte URL-Weg, ohne den Pfad Basis-URL) und ersetzt sie mit /index.php, wenn die entsprechenden Bedingungen beide wahr sind. Zusätzlich wird es als letzte Regel markiert. Wenn die Regel angewendet wird, stoppt die aktuelle Regelverarbeitung hier.

  • </IfModule>
    Gegenstück zu <IfModule …>.

+0

Das ist was ich suche, danke – coderex

2

Die .htaccess überschreibt alle Anfragen mit Ausnahme von Verzeichnissen und physischen Dateien, die in der Neuschreibbasis (dem Verzeichnis, in dem diese .htaccess-Datei zu finden ist) in /index.php vorhanden sind. Dies ist bei vielen Frameworks und Content-Management-Systemen eine ziemlich übliche Vorgehensweise, um die "hübschen" URLs zu erreichen (wie sie beispielsweise bei Stack Overflow zu sehen sind).

Sie könnten auch interessiert sein an der mod_rewrite docs, auch.