web-dev-qa-db-fra.com

Erreur de serveur interne .htaccess mod_rewrite 500 en raison d'un trop grand nombre de redirections internes à partir de LimitInternalRecursion

Chaque fois que je place mon fichier .htaccess dans mon répertoire Web, je reçois une erreur de serveur interne 500 et figure dans le fichier error.log en spécifiant:

[Sat Jan 21 13:46:07 2012] [error] [client xx.xx.xxx.xx] 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.

Mon fichier .htaccess:

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}  !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.css|\.js)$
RewriteRule ^(.*)  index.php

J'ai essayé d'activer Options + FollowSymLinks mais cela n'a pas fonctionné.

Tout fonctionne localement. Des indicateurs sur ce que je pourrais faire de mal?

2
Bart Zweers

Changez votre code avec ceci:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
1
anubhava

Vous devez également exclure la cible que vous redirigez:

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}  !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.css|\.js)$
RewriteCond $1 !=index.php
RewriteRule ^(.*)  index.php
0
Gumbo

Essayez ce qui suit pour empêcher les redirections internes

RewriteEngine On
#removed %{DOCUMENT_ROOT} as it is unnecessary
RewriteCond %{REQUEST_URI}  !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.css|\.js)$ [NC]
#Prevent internal redirects
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(.*)  index.php [L]
0
Ulrich Palha