J'utilise le code suivant dans mon .htaccess:Pourquoi cette règle de réécriture ne fonctionne-t-elle pas?
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
Les idées/règle fonctionne bien, comme je m'y attendais pas, mais les utilisateurs/règle ne semble pas. Il me donne une erreur HTTP 500 et le journal Apache indique qu'il a dépassé la quantité de réoriente disponible:
[Dim 14 juin 2009 10:58:39] [error] [client 127.0.0.1] demande a dépassé la limite de 10 redirections internes en raison d'une erreur de configuration probable. Utilisez 'LimitInternalRecursion' pour augmenter la limite si nécessaire. Utilisez 'LogLevel debug' pour obtenir un backtrace, referer. http://localhost/users
L'URL que je teste sur est/utilisateurs/ross, qui devrait fonctionner correctement./ideas/1 fonctionne vraiment bien.
Cela provoque les idées/ pages pour arrêter de travailler avec la même erreur. –
Ross
Et que dit le journal du serveur à ce propos? Une erreur 500 peut signifier n'importe quoi. – Gumbo
Mise à jour de la question. – Ross