Apache 2.4 開啟 Rewrite Log 查看詳細轉址紀錄

Apache 使用 mod_rewrite 可以設定轉址,但是轉址一直沒有朝自己想的設定方向走,要怎麼 Debug 呢?

Apache 2.4 開啟 Rewrite Log 查看詳細轉址紀錄

於 Apache 2.2 版時,使用的是下述:

RewriteEngine on
RewriteLog /path/to/log
RewriteLogLevel 2

於 Apache 2.4 版後,將 RewriteLog 指定檔案的部分,跟 ErrorLog 的檔案做整合了,所以會將 Log 寫到 ErrorLog 指定的檔案過去。

文件:mod_rewrite - Apache HTTP Server Version 2.4

設定方式

  • LogLevel alert rewrite:trace3 # 重點在此行,啟用 Rewrite Log 紀錄
  • ErrorLog /var/log/apache2/error.log # 看 ErrorLog 要寫去哪邊

範例

  1. vim /etc/apache2/sites-enabled/000-default.conf # 加入下述
    <IfModule mod_rewrite.c>
    LogLevel alert rewrite:trace3
    RewriteEngine On
    RewriteRule ^/$   /index.php?%{QUERY_STRING} [PT,L]
    </IfModule>
  2. /etc/init.d/apache2 reload
  3. tail -f /var/log/apache2/error.log | fgrep '[rewrite:' # 查看 rewrite 的詳細流程

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料