4 Stimmen

URL Rewrite pauschale Umleitung mit Verzeichnisausnahmen

Ich habe eine Website, die eine generische mod_rewrite-Regel verwendet, um alle Anfragen an die index.php-Seite weiterzuleiten, mit Ausnahme bestimmter Dateierweiterungen:

RewriteRule !\.(js|ico|gif|jpg|JPG|png|css|php|phtml|pdf|txt|xml)$ index.php

Was ich brauche, ist die Möglichkeit, ein bestimmtes Verzeichnis (einschließlich aller darin enthaltenen Dateien oder Unterverzeichnisse) von dieser Regel auszuschließen - was ist die beste Lösung?

Hier ist meine vollständige .htaccess-Datei, für den Fall, dass etwas anderes darin stört:

RewriteEngine ON
RewriteCond %{HTTP_HOST} !^www\..*
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{HTTP_HOST} ^([^.]*)\.(co\.uk)
RewriteRule ^.*$     http://www.%1.%2%{REQUEST_URI} [R=permanent,L]

AddHandler application/x-httpd-php .phtml

RewriteRule !\.(js|ico|gif|jpg|JPG|png|css|php|phtml|pdf|txt|xml)$ index.phtml

php_value display_errors "On"

7voto

jTresidder Punkte 492

Vor der von Ihnen zitierten Zeile, z. B. für ein Verzeichnis mit dem Namen 'style', müssen Sie:

RewriteRule  ^style/  -  [L]

Der Bindestrich bedeutet "keine Umleitung", und das "[L]" bedeutet "letzte Regel", d. h. es wird nicht weiter versucht, die URL mit den folgenden Regeln abzugleichen. Sie können so viele dieser Zeilen einfügen, wie Sie möchten, aber sie müssen vor der Zeile stehen, die Sie in der Frage angeben.

0voto

stesch Punkte 7183

Sie können sich informieren bei RewriteCond %{REQUEST_FILENAME} !-f für jede Anfrage, die nicht mit einem vorhandenen Dateinamen übereinstimmt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X