Moin!
Tach!
Du kannst ja mal diese RewriteRule vom Zend Framework erklären, das ist dasselbe Prinzip:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ /index.php [NC,L]
Warum machen die das denn so umständlich mit [OR] und Extra-Regel?
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-s RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.*$ /index.php [NC,L]
Die RewriteConds negieren, AND-verknüpfen und direkt ausschließen war wohl zu einfach oder hat die Umständlichkeit einen besonderen Hintergrund?
Ja: Performance!
Die Zend-Vorlage ist: Alles NICHT rewriten, wenn das Ziel ein File, ein Symlink oder ein Directory ist. Ansonsten rewriten.
Deine Alternative ist: Rewriten, wenn das Ziel kein File, kein Symlink und kein Directory ist.
Dazu muss aber dreimal im Filesystem geprüft werden, drei Bedingungen werden erfolglos ausgewertet, um zu Rewriten. Bei Zend wird nur bis zur ersten Bedingung geprüft.
Grüße Sven