エラーログ調査(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も発生していないということ。