web-dev-qa-db-ja.com

LimitInternalRecursionからの内部リダイレクトが多すぎるための.htaccess mod_rewrite 500内部サーバーエラー

.htaccessファイルをWebディレクトリに配置すると、500内部サーバーエラーが発生し、error.logファイル内で次のように指定されます。

[Sat Jan 21 13:46:07 2012] [error] [client xx.xx.xxx.xx] 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.

私の.htaccessファイル:

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}  !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.css|\.js)$
RewriteRule ^(.*)  index.php

Options + FollowSymLinksを有効にしようとしましたが、これは無益です。

すべてがローカルで機能します。私が間違っている可能性についてのポインタはありますか?

2
Bart Zweers

これでコードを変更します:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
1
anubhava

リダイレクトするターゲットも除外する必要があります。

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}  !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.css|\.js)$
RewriteCond $1 !=index.php
RewriteRule ^(.*)  index.php
0
Gumbo

内部リダイレクトを防ぐために次を試してください

RewriteEngine On
#removed %{DOCUMENT_ROOT} as it is unnecessary
RewriteCond %{REQUEST_URI}  !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.css|\.js)$ [NC]
#Prevent internal redirects
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(.*)  index.php [L]
0
Ulrich Palha