Ich verwende den folgenden Code in meinem .htaccess:Warum funktioniert diese Umschreiberegel nicht?
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]
# Special rewrite rules
# ideas/<id>
RewriteRule ^ideas/([0-9]+)$ idea\?id=$1
# users/<name>
RewriteRule ^users/(.+)$ users\?name=$1
Die Ideen/Regel funktioniert gut, wie ich erwarten würde es zu, aber die Benutzer/Regel scheint nicht zu. Es gibt mir ein HTTP-Fehler 500 und das Apache-Log sagt es die Menge an Umleitungen zur Verfügung überschritten hat:
[Sun 14. Juni 2009 10.58.39] [Fehler] [client 127.0.0.1] überschritten Antrag die Grenze von 10 internen Umleitungen aufgrund eines möglichen Konfigurationsfehlers. Verwenden Sie 'LimitInternalRecursion', um das Limit bei Bedarf zu erhöhen. Verwenden Sie 'LogLevel debug' eine Rückverfolgung zu erhalten, referer:. http://localhost/users
Die URL-I-Tests bin es auf/Users/ross, die sollte gut funktionieren./ideas/1 funktioniert definitiv gut.
Dies bewirkt, dass die Ideen/ Seiten mit dem gleichen Fehler funktioniert. –
Ross
Und was sagt das Serverprotokoll dazu? Ein Fehler von 500 kann alles bedeuten. – Gumbo
Aktualisierte die Frage. – Ross