Apache

  (最終更新日:2015.05.13)

mod_rewriteでログ出力をして500エラーを調査する方法

.htaccessでのmod_rewriteが原因で、Internal Server Error 500が発生してしまったときには、mod_rewriteのログを出力するのをおすすめします。実はログ出力ができるんです。

設定方法:やり方は簡単

やり方は簡単です。
Apacheの設定ファイル(httpd.conf)に下記を追記すればOK。

RewriteLog      "/usr/local/apache2/logs/rewrite.log"
RewriteLogLevel 9

ロギングのレベルは0から9までありますが、今回は詳細を全部だす9に設定しています。
調査が終わったらログをOFFにしておくことをお忘れなく。

ちなみに自分の問題は…

ちなみに私が今回ぶちあたったのは、CakePHPの.htaccessで Internal Server Error 500 が発生してしまいました。

1つずつルールを消して確認したところ、『RewriteRule (.*) app/webroot/$1 [L]』の箇所が悪さしているようで。

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

ログ出力をさせてみたところ以下の感じに・・・ 無限ループに突入している感ですね。オーマイガ。

[Wed May 13 11:23:10 2015] [error] [client 172.18.74.18] 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://10.0.0.152/

というわけで、mod_rewriteでログ出力をしてInternal Server Error 500を調査する方法でした。

スポンサーリンク
スポンサーリンク

関連記事

  1. Apache

    RewriteCondが効かない?特定のディレクトリを除外する方法でつまずいたお話

    CakePHPをトップディレクトリから利用しています。http:/…

  2. Apache

    Apacheの実行ユーザー(起動ユーザー)を変更する方法

    Apacheを起動しているユーザーを変更するには httpd.conf…

  3. Apache

    【解決済】原因は単純ミス‥。Apache+OpenSSLで構築したけどHTTPSに接続できない時

    いや。もうあまりの単純ミスぶりに自分をぶん殴りたいところですが。。。…

  4. Apache

    【凡ミス】Apache2.2系でAliasを指定したら403エラーが出た原因

    Apache2.2.23を使用。下記のようにAlias設定を入…

  5. Apache

    オレオレ証明書(自己証明書)を大急ぎで作る方法

    取り急ぎ1年間(365日)有効なオレオレ証明書を大急ぎ(最短作業)で作…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

  1. RHELでphp mbstringをyumインストールする方…
  2. Red Hat Subscription Managerでプ…
  3. Oracleで統計情報を別のユーザー(スキーマ)に移行する方…
  4. 【CentOS 7】HISTIGNOREで指定してもhist…
  5. ColdFusion 2016をCentOS 7にインストー…
PAGE TOP