web-dev-qa-db-fra.com

La requête a dépassé la limite de 10 redirections internes en raison d'une erreur de configuration probable

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:

http://book.cakephp.org/2.0/en/getting-started.html

36
Stephen

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>
58
Stephen
//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]
2
Shal

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.

1
datasn.io

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

0
belem