エラーログ調査(1), AH00124, リダイレクトエラー,robots.txt
さくらレンタルサーバーのサーバーコントロールから、アクセスログを見てみた。
その結果、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となる。ページは存在しないので当然。

1.robots.txtファイルの作成
下記、2行だけのテキストファイルを作成して、robots.txtという名前で保存した。
これは、クローラーに対して制限無しでアクセスさせるという意味になる。
User-agent: *
Disallow:
追加の対策として、ページが見つからなかった場合に、index.phpのリダイレクトを繰り返さない方が良いらしい。また、robots.txtも外した方が良いらしい。
2. .htaccessファイルの見直し
トップページのフォルダに置かれている .htaccess を見直し、下記、2行を追加した。
ちなみに、.htaccessファイルの気密性は高いのでパーミッションは 600 にしておく。
修正後 | 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] |
この結果、robots.txtにアクセスすると、エラーは出なくなった。代わりに下記の文字が表示される。

また、存在しないページにアクセスしてもエラーログは増えない。つまり、AH00124も発生していないということ。