Apache 2.4 – Die Anfrage hat das Limit von 10 internen Umleitungen aufgrund eines wahrscheinlichen Konfigurationsfehlers überschritten

Lesezeit: 4 Minuten

Apache 24 Die Anfrage hat das Limit von 10
iltdev

Ich verwende Apache 2.4 (64 Bit) und PHP 5.4.15 auf Windows Server 2008 R2 Enterprise und habe den folgenden Fehler im Apache-Fehlerprotokoll festgestellt:

AH00124: 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.

Ich habe eine Multisite-Installation von WordPress ausgeführt und ich denke, der Fehler kommt von einem Fehler in den htaccess-Umschreibungen.

Wenn Sie sich diesen Beitrag ansehen: Die Anfrage hat das Limit von 10 internen Umleitungen aufgrund eines wahrscheinlichen Konfigurationsfehlers überschritten.?

Sie schlagen vor, dies zu ersetzen:

# BEGIN WordPress
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]
</IfModule>
# END WordPress

mit diesem Stück Code, mit freundlicher Genehmigung von Scott Yang:

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

Mein WordPress htaccess sieht jedoch etwas anders aus, daher möchte ich nicht nur meinen Code ersetzen, falls ich versehentlich etwas ersetze, das ich benötige.

Hier mein htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
Options +FollowSymLinks -MultiViews
Header set Access-Control-Allow-Origin "*"
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
</IfModule>
# END WordPress

Kann jemand vorschlagen, was ich ändern muss?

Apache 24 Die Anfrage hat das Limit von 10
Justin Samuel

Dieses Problem kann durch Anfragen nach bestimmten Dateien verursacht werden, die nicht vorhanden sind. Zum Beispiel Anfragen nach Dateien in wp-content/uploads/, wo die Datei nicht existiert.

Wenn dies die Situation ist, die Sie sehen, können Sie das Problem lösen, indem Sie zu .htaccess gehen und diese Zeile ändern:

RewriteRule ^(wp-(content|admin|includes).*) $1 [L]

zu:

RewriteRule ^(wp-(content|admin|includes).*) - [L]

Das zugrunde liegende Problem besteht darin, dass die obige Regel ein Umschreiben auf genau dieselbe URL mit einem vorangestellten Schrägstrich auslöst, und da es ein Umschreiben gab, geht die neu umgeschriebene Anforderung erneut durch die Regeln und es wird dieselbe Regel ausgelöst. Indem Sie „$1“ dieser Zeile in „-“ ändern, findet kein Umschreiben statt und der Umschreibungsprozess beginnt nicht erneut mit derselben URL.

Es ist möglich, dass es einen Unterschied gibt, wie Apache 2.2 und 2.4 mit dieser Situation umgehen, dass nur der Unterschied ein Schrägstrich ist, und deshalb funktionieren die von WordPress bereitgestellten Standardregeln nicht perfekt.

  • Danke, Justin. Sehr informativ. Denken Sie also, dass es am besten ist, die Rewrite-Regel beizubehalten (mit einem – anstelle von $1), anstatt sie auszukommentieren?

    – iltdev

    7. April 2014 um 7:21 Uhr

1647404347 387 Apache 24 Die Anfrage hat das Limit von 10
anubhava

Sie kommen höchstwahrscheinlich aufgrund dieser Regeln in Schleifen:

RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]

Kommentieren Sie es einfach aus und versuchen Sie es erneut in einem neuen Browser.

  • Auskommentieren RewriteRule ^(wp-(content|admin|includes).*) $1 [L] Auch.

    – anubhava

    1. April 2014 um 7:48 Uhr

  • Danke, anubhava. Ich lasse Sie wissen, wie es geht. Manchmal dauert es eine Weile, bis die Meldung wieder in den Protokollen erscheint.

    – iltdev

    1. April 2014 um 8:20 Uhr

  • Ich habe auch LogLevel rewrite:trace3 zu httpd.conf hinzugefügt, also hoffe ich, dass das etwas zeigt.

    – iltdev

    1. April 2014 um 8:23 Uhr

  • Danke, anubhava. Es sieht aus wie auskommentieren RewriteRule ^(wp-(content|admin|includes).*) $1 [L] zusammen mit RewriteRule ^(.*\.php)$ $1 [L] Problem gelöst. Vielen Dank für deine Hilfe 🙂

    – iltdev

    2. April 2014 um 7:55 Uhr

  • Weiß jemand, warum diese beiden Umschreibungsregeln überhaupt existieren? Ich habe eine Frage unter erstellt wordpress.stackexchange.com/questions/352817/… um dies anzusprechen und würde mich über jeden Input freuen.

    – jg314

    19. November 2019 um 0:06 Uhr

1647404348 232 Apache 24 Die Anfrage hat das Limit von 10
Tarun Gupta

Gelöst, indem Sie Folgendes hinzufügen:

RewriteCond %{ENV:REDIRECT_STATUS} 200 [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

  • So ist die Änderung hier, die Sie hinzugefügt haben RewriteCond %{ENV:REDIRECT_STATUS} 200 [OR] Vor RewriteCond %{REQUEST_FILENAME} -f [OR]?

    – Giacomo1968

    13. Dezember 2021 um 2:28 Uhr

  • FWIW, es scheint, als ob diese Lösung für jede Menge Leute funktioniert hat, basierend auf diesen GitHub Gist hier: ‘WordPress Multisite: So beheben Sie den Fehler “Die Anfrage hat das Limit von 10 internen Weiterleitungen überschritten”‘

    – Giacomo1968

    13. Dezember 2021 um 2:36 Uhr

In unserem Fall hat ein Redakteur einen benutzerdefinierten Beitragstyp und einen benutzerdefinierten Inhaltstyp mit demselben Slug erstellt. Wir haben es behoben, indem wir einen gelöscht und Permalinks neu gespeichert haben [ WordPress › Tools › Settings ].

Hoffe, das hilft jemandem.

1004990cookie-checkApache 2.4 – Die Anfrage hat das Limit von 10 internen Umleitungen aufgrund eines wahrscheinlichen Konfigurationsfehlers überschritten

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy