Je reçois l'erreur suivante dans mon application CakePHP:
La requête 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 une trace., Referer: http://projectname.dev/
Mon .htaccess dans le dossier racine ressemble à ceci:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
et dans le dossier de l'application:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
et dans le dossier webroot:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /projectname
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
Je suivais ce tutoriel:
Je viens de trouver une solution au problème ici:
http://willcodeforcoffee.com/2007/01/31/cakephp-error-500-too-many-redirects/
Le fichier .htaccess dans webroot devrait ressembler à ceci:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
au lieu de cela:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /projectname
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
//Just add
RewriteBase /
//after
RewriteEngine On
//and you are done....
//so it should be
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
Cette erreur s’est produite lors du débogage de la fonction PHP en-tête ()):
header('Location: /aaa/bbb/ccc'); // error
Si j'utilise un chemin relatif, cela fonctionne:
header('Location: aaa/bbb/ccc'); // success, but not what I wanted
Cependant, lorsque j'utilise un chemin absolu comme /aaa/bbb/ccc
, cela donne l'erreur exacte:
La requête 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 une trace.
Il semble que la fonction d’en-tête redirige en interne sans passer par HTTP, ce qui est étrange. Après quelques tests et essais, j'ai trouvé la solution consistant à ajouter exit après header ():
header('Location: /aaa/bbb/ccc');
exit;
Et ça fonctionne correctement.
j'ai résolu ce problème par http://willcodeforcoffee.com/2007/01/31/cakephp-error-500-too-many-redirects/ simplement commentez ou ajoutez ceci:
RewriteBase /
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
à votre fichier .htaccess