2009年2月28日土曜日

apacheのカスタムエラーレスポンスについてメモ

Apacheの設定で、

ErrorDocument 404 http://外部URL/filename?param=value
のような事をしたい時ってあるよね。

いや、俺はありました。
ユーザーがリクエストしたファイル名とパラメータが何だったか?を取得する方法がないかな~?って調べてたらあった。

こんな時はApacheが自動的に

REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap, image/jpeg
REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX A.09.05 9000/712)
REDIRECT_PATH=.:/bin:/usr/local/bin:/etc
REDIRECT_QUERY_STRING=
REDIRECT_REMOTE_ADDR=121.345.78.123
REDIRECT_REMOTE_HOST=ooh.ahhh.com
REDIRECT_SERVER_NAME=crash.bang.edu
REDIRECT_SERVER_PORT=80
REDIRECT_SERVER_SOFTWARE=Apache/0.8.15
REDIRECT_URL=/cgi-bin/buggy.pl
という変数を作ってみれるみたいです。
だから、ErrorDocumentで指定したファイル内で
$_ENV["REDIRECT_XX"]ってやれば取得できる。
※外部URLへリダイレクトされた(ErrorDocumentが外部URL)場合は無理です。


「おおー!便利ー!」って思ったけど、よく考えたらそんな事しなくても簡単にphpで

$_SERVER["REQUEST_URI"]
で取れちゃうジャン。
ま、いつか使うかもね。

0 件のコメント:

amazon