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

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

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

  2. Apache

    Apache 2.4をソースからインストールする

    Apache 2.4系をソースでインストールする方法です。2.…

  3. Apache

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

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

  4. Apache

    Apacheでreloadとgracefulを試した動きのメモ

    Apacheにおける reload コマンドと graceful コマ…

  5. Apache

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

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

コメント

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

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

最近の記事

  1. PHP PhantomJSでFatal error: Unc…
  2. 【Oracle】DataPumpの対話式コマンドモードを抜け…
  3. CentOS7のPHP5.6にPhpSpreadsheetを…
  4. Azure仮想マシン(CentOS 7)のStandardデ…
  5. 【CentOS 7】特定ユーザーのクォータ設定を削除(無制限…
PAGE TOP