maehachi08 Anything Blog

2012年11月01日
PHPでmod_rewriteエラー(無限ループ)の時の話
PHP

PHPでmod_rewrite使ってるとこんなエラーに遭遇することがあります。

mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary
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

こんな時はmod_rewrite設定を疑いましょう。
例えば、RewriteBase設定があるかなーとか。

RewriteBase /

例えば、RewriteRule設定が間違ってないかなーとか。

RewriteRule . /index.php [L]

悪い例...

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /hoge/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /hoge/index.php [L]
</IfModule>