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?
Changez votre code avec ceci:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
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
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]