Bitte helfen Sie mir eine Lösung für dieses Verhalten zu finden, die mir sehr fremd ist.mod_rewrite Regel angepasst, aber Kette ist nicht
Hier ist meine .htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^emltr\.gif$ aaa.html [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
</IfModule>
Notiere die L-Flag, so würde ich sagen, dass, wenn „gif“ Regel verglichen wird die Kette gelassen wird. Aber es ist nicht.
Die angeforderte URL ist „emltr.gif“
Wenn die „catch-all“ -Regel und Bedingungen kommentiert werden, dann ist die „gif“ Regel richtig gemacht. ("aaa.html" existiert nicht, dies ist ein Test, um unerwünschtes zirkuläres Verhalten zu verhindern.)
Wenn die "Catch-All" -Regel unkommentiert ist, dann wird IT genommen und nicht die erste Regel. Warum wird der zweite statt der erste genommen? Oder anders: Warum ist die Kette nicht verlassen, obwohl das L-Flag, und dann die zweite Regel ausgewertet wird?
Danke
So funktioniert das L, es stoppt die Rewiteration. Sie können END anstelle von L verwenden, um den Neuschreibprozess sofort zu beenden, wenn die Regel übereinstimmt – starkeen