2016-07-26 15 views
1

これは私の.htaccessファイルである:私は500内部サーバーエラーを取得していますがindex.phpにすべての要求をリダイレクト.htaccessの

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php [L] 

。私はこのエラーを得た 猫/var/log/apache2/error.log :このコマンドの後

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. 

私はこれを整理助けてください?

+0

ありがとうございます。 –

+0

このルールだけでループを書き換えることはできません – anubhava

+0

どのバージョンのApacheですか? – Will

答えて

2

あなたのhtaccessルールを以下に変更してください。

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

チェックアウトthis serverfault answer

要約すると、[L]は、現在のルールセットの処理を停止し、書き換えられたURLをURL解析エンジンに戻します。URL解析エンジンはルールセットを再度適用します。 10回。そして、Apacheは止めると言います。

あなたは書き換えが既にindex.phpに起こっている場合は書き換えないに条件を追加することができます。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/index.php 
RewriteRule . index.php [L] 

それとも、あなたが他のルールの前にENV:REDIRECT_STATUSをチェックして、適用されてからの任意のさらなるルールを停止することができます:

RewriteEngine On 

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule^- [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php [L] 
関連する問題