Apache: kein mod_rewrite bei existierender Datei

Ich bin mir sicher, eines der großen On-Page-SEO-Themen im nächsten Jahr wird sein, wie man die Auslieferung einer Seite beschleunigen kann. Es sollte geradezu offensichtlich sein, dass man am meisten in PHP-Programmen sparen kann, wenn man PHP erst gar nicht aufruft. Deshalb ist eine mögliche Idee, die generierten Seiten mittels PHP rausschreiben zu lassen und dann diese direkt auszuliefern.

Das möchte ich jetzt an einigen Stellen auch bei meinen Framework-Modulen forcieren. Da ich aber sehr stark auf mod_rewrite gesetzt habe, stellt sich die Frage, wie ich das am einfachsten bewältigen kann. Die Antwort liefert mir dieser Code:


RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f
RewriteRule ^ %{DOCUMENT_ROOT}%{REQUEST_URI} [L]

Der macht nichts anderes wie dem Apache zu sagen: falls es eine echte Datei mit diesem Namen gibt, dann leite nicht auf andere Dateien – in meinem Fall PHP-Dateien – um. Sehr nützlich!

3 Gedanken zu „Apache: kein mod_rewrite bei existierender Datei

  1. Ich finde in diesem Fall die negativen Tests einfacher:

    RewriteCond %{REQUEST_FILENAME} ! -f
    RewriteCond %{REQUEST_FILENAME} ! -d
    RewriteCond %{REQUEST_FILENAME} ! -l
    RewriteRule

    Denn 1. ist REQUEST_FILENAME schon durch alle vorheringen Ersetzungen gelaufen, also funktioniert das Ganze auch mit Aliasen, anderen RewriteRules etc., 2. sind damit auch Verzeichnisse und symbolische Links abgedeckt (Die zweite oder dritte Cond können je nach Gusto auch weggelassen werden).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.