wake-up-neo.net

Apache 2.4 - Die Anforderung hat aufgrund eines möglichen Konfigurationsfehlers die Grenze von 10 internen Weiterleitungen überschritten

Ich verwende Apache 2.4 (64bit) und PHP 5.4.15 unter 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, und ich denke, der Fehler kommt von einem Fehler in den htaccess-Neuschreibungen.

Betrachten Sie diesen Beitrag: Die Anforderung hat das Limit von 10 internen Weiterleitungen aufgrund eines möglichen 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 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>

Allerdings sieht mein WordPress htaccess ein wenig anders aus, daher möchte ich meinen Code nicht einfach nur für den Fall ersetzen, dass ich versehentlich etwas ersetzt, das ich brauche.

Hier ist mein Zugang:

# 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?

16
iltdev

Sie werden wahrscheinlich aufgrund dieser Regeln in eine Schleife geraten:

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

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

13
anubhava

Dieses Problem kann durch Anforderungen für bestimmte Dateien verursacht werden, die nicht vorhanden sind. Beispielsweise Anfragen nach Dateien in WP-Content/Uploads /, bei denen die Datei nicht vorhanden ist.

Wenn dies die Situation ist, die Sie sehen, können Sie das Problem lösen, indem Sie .htaccess aufrufen 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 eine Umschreibung auf dieselbe URL mit einem Schrägstrich vorn vorn auslöst. Da eine Umschreibung erfolgte, wird die neu umgeschriebene Anforderung erneut durch die Regeln zurückgesetzt und dieselbe Regel wird ausgelöst. Durch das Ändern von "$ 1" in "-" der Zeile wird kein Neuschreiben ausgeführt, und der Neuschreibvorgang beginnt nicht erneut mit derselben URL.

Es ist möglich, dass es einen Unterschied gibt, wie Apache 2.2 und 2.4 diese Situation von Nur-Unterschied-Ist-Ein-Schrägstrich-in-Front behandeln, und deshalb funktionieren die von WordPress bereitgestellten Standardregeln nicht perfekt.

23
Justin Samuel

Dies wurde durch Hinzufügen des Folgenden behoben 

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