Hallo,
... den bisherigen Hinweisen zu diesem Thema zufolge möchte ich ergänzend zum obigen hinzufügen: dass, wenn die index.html geladen wurde der Fall:
angefragte RequestUri ist ein Verzeichnis auf dem Server, daher wird die Anfrage durchgelassen und bedient - sprich: das Verzeichnis wird aufgerufen und die in der Serverkonfiguration standardmäßig eingestellte "index.html" wird am Bildschirm des anfragenden Clients gezeig - - - leider nur ohne Formatierung der .css Datei, die im Header der "index.html" mit einer relativen Pfadangabe referenziert ist - usw.
ja, und warum das so ist, hat MudGuard doch schon erklärt.
Nochmal ausführlicher.
1. Request: /verzeichnis/ (wir nehmen an, /verzeichnis sei *wirklich* ein Verzeichnis)
Hier trifft deine erste Rewrite Rule zu:
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} -d
RewriteRule ^.*$ - [PT,L]
Der Request wird also nicht umgeschrieben, sondern unverändert durchgereicht, das Default-Dokument aus /verzeichnis ausgeliefert.
2\. Request: /verzeichnis/style.css (eine beliebige eingebundene CSS-Ressource)
Die erste Rewrite Rule passt nicht, weil /verzeichnis/style.css kein Verzeichnis ist.
Die zweite passt aber, \*weil\* /verzeichnis/style.css kein Verzeichnis ist:
> ~~~apache
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-d
> RewriteRule ^verzeichnis.*$ http://.... [R=307,L]
Der Client wird also aufgefordert, sich die gesuchte Ressource woanders zu holen, wo sie vermutlich nicht existiert.
Nebenbei bemerkt ist es überflüssig, den Ausdruck %{DOCUMENT_ROOT}/
in der RewriteCond zu erwähnen, weil %{REQUEST_URI}
immer vom Document Root aus gilt.
So long,
Martin
Der Dienstweg ist die Abkürzung vom Holzweg zur Sackgasse.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(