エラーログ調査(1), AH00124
エラーログにAH00124が出力された場合の原因と対策を書きます。
エラーログにAH00124が出力された
ある日、さくらレンタルサーバーのサーバーコントロールからアクセスログを見てみた。
その結果、AH00124というエラーログが出力されていることに気づいた。
これはリダイレクトエラーが発生しているということ。
具体的には、下記、アクセスしようとしているページから検索エンジンのクローラーによるものと判断出来る。
referer: http://***.com/robots.txt


[Thu Apr 24 01:47:26.733927 2025] [core:error] [pid 83507] [client 192.71.3.222:0] 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., referer: http://***.com/robots.txt |
これを放置するのはSEOの観点でよくないので、修正することにした。
Not foundの確認
まずは現状確認をしてみた。
エラーとなるページをブラウザでアクセスしたところ、Not Foundとなった。
ページは存在しないので当然。

robots.txtファイルの作成
クローラーに対する指示としてrobots.txtというファイルを用意した。(詳しくはrobots.txt の概要を参照)
中身はたった2行しかないが、これを用意することでクローラーに対する指示が明確になる。
この場合、制限無しでアクセスしてください、という意味。
User-agent: *
Disallow:
.htaccessファイルの見直し
このサイトでは、フォルダ構成の理由からリダイレクトを利用している。
その設定があまり良くないことに気づいた。
トップページのフォルダに置かれている .htaccess を見直し、下記、2行を追加した。
修正後 | RewriteBase /***/ RewriteRule ^index.php$ – [L] RewriteCond %{REQUEST_URI} !^/***/index.php$ RewriteCond %{REQUEST_URI} !^/robots.txt$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /***/index.php [L] |
修正前 | RewriteBase /***/ RewriteRule ^index.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /***/index.php [L] |
これで、ページが見つからなかった場合にindex.phpへの リダイレクトが繰り返されないようになる。
また、robots.txtもリダイレクトの対象から外れる。ちなみに、.htaccessファイルの気密性は高いのでパーミッションは 600 にしておく。
改善結果、エラーログにAH00124が出力されなくなった
対策した結果、robots.txtにもう一度アクセスしたところ、エラーは出なくなった。
代わりに下記の文字が表示されるようになった。これは期待通りの動作。

また、試しに存在しないページにアクセスしてみても、エラーログにAH00124が出力されなくなったことを確認した。
改善出来たと考える。