source

Apache 2.4 - 구성 오류로 인해 요청이 10개의 내부 리디렉션 제한을 초과했습니다.

manycodes 2023. 2. 18. 20:55
반응형

Apache 2.4 - 구성 오류로 인해 요청이 10개의 내부 리디렉션 제한을 초과했습니다.

Windows Server 2008 R2 Enterprise에서 Apache 2.4(64비트) 및 PHP 5.4.15를 실행하고 있으며 Apache 오류 로그에 다음 오류가 기록되어 있습니다.

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.

WordPress를 멀티사이트에서 설치하고 있는데 htaccess 수정 오류에서 오류가 발생한 것 같습니다.

이 게시물 보기: 설정 오류로 인해 요청이 10개의 내부 리다이렉트 제한을 초과했습니다.

이를 대체할 것을 제안합니다.

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

스캇 양으로부터 받은 코드 조각으로요

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

다만, WordPress htaccess는 조금 다른 것 같기 때문에, 혹시라도 필요한 것을 교환했을 경우에 대비해 코드를 교환하고 싶지는 않습니다.

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

내가 무엇을 바꿔야 하는지 누가 제안해 줄 수 있나요?

이 문제는 존재하지 않는 특정 파일에 대한 요청으로 인해 발생할 수 있습니다.예를 들어 파일이 존재하지 않는 wp-content/uploads/에 있는 파일에 대한 요청입니다.

이 경우 .htaccess로 이동하여 다음 행을 변경하여 문제를 해결할 수 있습니다.

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

대상:

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

근본적인 문제는 위의 규칙이 앞에 슬래시가 있는 동일한 URL로의 개서를 트리거하고 개서가 있었기 때문에 새로 개서된 요구가 다시 규칙을 통과하여 동일한 규칙이 트리거된다는 것입니다.이 행의 "$1"을 "-"로 변경하면 다시 쓰기가 발생하지 않으므로 다시 쓰기 프로세스가 동일한 URL로 다시 시작되지 않습니다.

Apache 2.2와 2.4가 이 차이만 슬래시 인 프런트 상황에 어떻게 대처하느냐에 차이가 있을 수 있으며, 이것이 WordPress가 제공하는 기본 규칙이 완벽하게 작동하지 않는 이유입니다.

루핑에 빠질 가능성이 가장 높은 것은 다음 규칙입니다.

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

코멘트를 달아 새 브라우저에서 다시 시도하십시오.

다음을 추가하여 이 문제를 해결:

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

이 경우 편집자가 같은 slug로 커스텀 투고 타입과 커스텀콘텐츠 타입을 작성했습니다.[ WordPress tools Tools settings Settings ]에서 1개를 삭제하고 permalink를 다시 저장하여 수정하였습니다.

이게 도움이 됐으면 좋겠어요.

언급URL : https://stackoverflow.com/questions/22756796/apache-2-4-request-exceeded-the-limit-of-10-internal-redirects-due-to-probable

반응형