Ich wurde gerade darauf hingewiesen, dass diese Methode natürlich ALLE Dateianfragen an die index.php weiterleitet. Das kann man aber auch noch beeinflussen.
Folgende Anweisung VOR der RewriteRule deaktiviert die Rule für bestimmte Unterordner:
RewriteCond %{REQUEST_URI} !^(/ordner1|/ordner2|/ordnern) [NC]
Und folgende Anpassung der Rule selbst ignoriert bestimmte Dateien aus dem Root-Pfad (wo auch die index.php liegt):
RewriteRule !(index.php|.ico|sitemap.xml)$ ./index.php?query=%{REQUEST_URI}&%{QUERY_STRING} [NC,L]
In diesem Beispiel werden Aufrufe der Datei index.php, aller Dateien mit der Endung .ico und die sitemap.xml nicht umgewandelt. Das kann beliebig erweitert werden (durch Pipes getrennt: „|“).
Alternativ dazu wäre es noch möglich immer nur die URL umzuschreiben, wenn eine Anfrage gestellt wird, die weder einem gültigen Pfad noch einer gültigen Datei entspricht (also immer, wenn die angeforderte Datei oder der Ordner nicht vorhanden sind):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_FILENAME} !-l [NC]
RewriteRule .* ./index.php?query=%{REQUEST_URI}&%{QUERY_STRING} [NC,L]
MfG
Lutz