apacheに関する質問です。mod_rewriteでURL書き換えをしていて、正常に動作しているのですが、アクセスログ上ではFile does not existエラーになってしまいます。アクセスログにエラー出力が出る原因は何でしょうか?


-------
* mod_rewrite
RewriteRule ^/hoge([\/]*)$ /hoge.php [L]
* httpリクエスト結果
GET /hoge
200 ok
* error_log(apache)
File does not exist: /var/www/html/hoge
-----------

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/12/27 00:00:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント60pt

まずは実際に正常に表示されている(ように見える?)アクセスとそのエラーログが同じタイミングで出ているかを確認しましょう。

これは、access_log (apache) と error_log (apache) のタイムスタンプを見比べればわかるはずです。

その時点で予期していないアクセスが記録されているようならそれも控えます。


上記で一致しているようなら、mod_rewrite 自体のログを確認します。

Apache module mod_rewrite

RewriteLog logs/rewrite_log
RewriteLogLevel 3

などとすればどういう挙動をしているかが詳細にわかります。


ただし、RewriteLog はかなりの量になるので実運用サーバーでいきなり試すのはお勧めしません。

できれば試験用サーバーを別途立てるか、LogLevel 1 から順番に上げていって様子を見ることをお勧めします。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません