2012-03-24 7 views
1

Ich habe folgendes in einer .htaccess. Datei:Wie man Endlosschleife in dieser mod_rewrite Regel repariert?

RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_URI} !^/css(/?|/.+)$ 
RewriteCond %{REQUEST_URI} !^/js(/?|/.+)$ 
RewriteCond %{REQUEST_URI} !^/img(/?|/.+)$ 
RewriteRule !^/handle\.php$ /handle.php [L] 

ich einfach alle Anfragen wollen (mit Ausnahme der mit /css/ beginnen, /js/ und /img/) zu handle.php gesendet werden.

Aber wenn ich eine Anfrage ich ein 500-Fehler erhalten, und dies wird im Fehlerprotokoll gedruckt:

[Sat Mar 24 16:14:53 2012] [error] [client x.x.x.x] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

Warum wird in einer Endlosschleife zu bekommen?

Antwort

1

Es ist wahrscheinlich, dass das Neuschreiben einer Anfrage an /handle.php nicht mit !^/handle\.php$ übereinstimmt, also versucht es das Neuschreiben, etc. Ihr Problem könnte der führende Schrägstrich sein? Versuche damit herumzuspielen.

Wenn nicht, überprüfen Sie die RewriteLog Direktive (und sehen Sie den Eintrag direkt darunter, RewriteLogLevel). Sie können sehen, welche Änderungen versucht werden, und Sie werden wahrscheinlich herausfinden, was schief läuft.

+0

Sie haben Recht. Die letzte Zeile in 'RewriteRule! ^/Handle \ .php $ handle.php [L]' geändert und es funktioniert. Vielen Dank. – callum

Verwandte Themen