Christian Kruse: Apache: rewrite - Engine

Beitrag lesen

Hoi Stefan,

Ich möchte immer dann, wenn der User ein Verzeichnis aufruft, per Rewrite
umleiten. Jetzt habe ich da was mit -d gefunden, also:

was genau soll -d bewirken?

Es ueberprueft, ob der ermittelte Dateiname ein Verzeichnis ist.

RewriteCond %{REQUEST_URI} -d
RewriteRule (.*)$ /cgi-bin/Anzeige.pl?RequestedPage=$1 [L]

Ich wuerde eher schreiben:

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule (.*) /cgi-bin/Anzeige.pl?RequestedPage=$1 [L]

RewriteCond %{REQUEST_URI}

Was bitte soll das denn? ;-)

diese Variante finde ich irgendwie logischer.

Ich nicht ;-) Bei dir ist die RewriteCond voellig ueberfluessig, ausserdem
duerfte es einen 500er geben.

Bei Deiner Variante wird
ja nirgends festgelegt, dass die RewriteRule nur für dieses eine Ver-
zeichnis gilt.

Das muss man durch Verkettungen natuerlich noch weiter einschraenken, z. B.
so:

RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !^/verzeichnis/
RewriteRule (.*) /cgi-bin/Anzeige.pl?RequestedPage=$1 [L]

Hier werden alle Zugriffe auf das Verzeichnis '/verzeichnis/' ausgenommen.

Gruesse,
 CK