Vermeidung ungewollter Prüfungen in .htaccess
Bautz
- webserver
Hallo,
wenn das Ziel der Umleitung durch mich in .htaccess korrekt angegeben ist, möchte ich, dass die Prüfungen (RewriteRule und RewriteCondion) nicht noch einmal durchgeführt werden.
Diese werden allerdings nach Ausführung eines redirects erneut durchgeführt. Kann man dies unterdrücken (im Beispiel Zeile 6 ff.)?
Willkürliches Beispiel:
.htaccess:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/index/ [NC]
RewriteRule ^index(.*)$ $1 [L]
Aufruf:
http://www.foo.com/index/aaaa.html
Prüfungen in .htaccess:
1. [perdir D:/foo/] strip per-dir prefix: D:/foo/index/aaaa.html -> index/aaaa.html
2. [perdir D:/foo/] applying pattern '^index(.*)$' to uri 'index/aaaa.html'
3. [perdir D:/foo/] RewriteCond: input='/index/aaaa.html' pattern='^/index/' [NC] => matched
4. [perdir D:/foo/] rewrite 'index/aaaa.html' -> '/aaaa.html'
5. [perdir D:/foo/] internal redirect with /aaaa.html [INTERNAL REDIRECT]
6. [perdir D:/foo/] strip per-dir prefix: D:/foo/aaaa.html -> aaaa.html
7. [perdir D:/foo/] applying pattern '^index(.*)$' to uri 'aaaa.html'
8. [perdir D:/foo/] pass through D:/foo/aaaa.html
Grüße
Bautz
Hi,
ich habe mal eine Zusatzfrage, kann dir leider nicht helfen ;-(
Wie kannst du dir die einzelnen Schritte der htaccess ausgeben lassen?
echo $begrüßung;
Wie kannst du dir die einzelnen Schritte der htaccess ausgeben lassen?
Konfiguriere dir ein RewriteLog. Dazu brauchst zu administrativen Zugriff auf den Webserver, denn das lässt sich nicht im Verzeichnis einschalten.
echo "$verabschiedung $name";
echo $begrüßung;
wenn das Ziel der Umleitung durch mich in .htaccess korrekt angegeben ist, möchte ich, dass die Prüfungen (RewriteRule und RewriteCondion) nicht noch einmal durchgeführt werden.
Diese werden allerdings nach Ausführung eines redirects erneut durchgeführt. Kann man dies unterdrücken (im Beispiel Zeile 6 ff.)?
Neuer Request (wenn auch nur intern ausgelöst) - neues Spiel - neues Parsen und Anwenden der Per-Verzeichnis-Konfigurationsdatei (.htaccess). Du kannst nur durch entsprechende RewriteRule-RewriteCond-Kombination eine Ausführen der Regel bei bereits umgeschriebenen Anfragen verhindern. Im Allgemeinen will man keine Umschreibung mehr bei real existierenden Dateien und Verzeichnissen.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
echo "$verabschiedung $name";