2013-04-06 6 views
27

Dostaję następujący błąd w mojej aplikacji CakePHP:Zapytanie przekroczyła limit 10 przekierowań wewnętrznych z powodu błędu konfiguracji prawdopodobnego

Zapytanie przekroczyła limit 10 przekierowań wewnętrznych z powodu prawdopodobnego błędu konfiguracji. Użyj "LimitInternalRecursion", aby zwiększyć limit, jeśli to konieczne. . Użyj 'LogLevel debug', aby uzyskać ślad, referer: http://projectname.dev/

Moje .htaccess w folderze głównym, wygląda następująco:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ app/webroot/ [L] 
    RewriteRule (.*) app/webroot/$1 [L] 
</IfModule> 

w folderze aplikacji:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ webroot/ [L] 
    RewriteRule (.*) webroot/$1 [L] 
</IfModule> 

i w folderze 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> 

byłem po ten poradnik:

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

Pozdrawiam, Stephen

Odpowiedz

48

Właśnie znalazłem rozwiązanie problemu tutaj:

http://willcodeforcoffee.com/2007/01/31/cakephp-error-500-too-many-redirects/

Plik .htaccess w webroot powinna wyglądać następująco:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 
</IfModule> 

zamiast to:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /projectname 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 
</IfModule> 
+0

na ciasto 2.4.1, .htaccess jest tym z folderu, który zawiera aplikację, bibliotekę, wtyczki, dostawcę; nie aplikacja/webroot. również jedną ważną zmianą jest dodanie 'RewriteBase /' ... pozostałe części pliku .htaccess mogą nie pasować i to jest w porządku. –

+0

Świetne rozwiązanie yaar ... Zdarza się w moim codeigniter, centos 6 środowiska, dzięki. – user2518430

+0

Jak to naprawić dla Windows –

0

Ten błąd wystąpił do mnie, gdy byłem debugowanie PHP header() funkcja:

header('Location: /aaa/bbb/ccc'); // error 

Gdybym użyć ścieżki względnej to działa:

header('Location: aaa/bbb/ccc'); // success, but not what I wanted 

Jednak kiedy Używam bezwzględnej ścieżki, takiej jak /aaa/bbb/ccc, podając dokładny błąd:

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.

Wygląda na to, że funkcja nagłówkowa przekierowuje wewnętrznie bez przechodzenia przez HTTP w ogóle, co jest dziwne. Po kilku próbach i próbach, znalazłem rozwiązanie dodawania wyjścia po nagłówku():

header('Location: /aaa/bbb/ccc'); 
exit; 

I działa poprawnie.