アプリ版:「スタンプのみでお礼する」機能のリリースについて

質問させて頂きます。
現在ホームページを作成しているのですが、
ホームページ内のあるページにアクセスする際にBasic認証をかけ、
こちらが発行するIDとパスワードを持っている人しかページを表示できないようにしたいと考えています。
そして、認証したときは時刻、ID、リモートアドレス等の情報のログを取りたいのですが、ログを取るには何が必要でしょうか?
スクリプトとか必要なのでしょうか?
はじめてBasic認証をやるので何もわからない状態です。
よろしくお願いします。

A 回答 (3件)

>私の管理しているページの認証についてだけ、別のファイルにログをとることはできないでしょうか?


>指定した場所に他のログとは別にして自分のページが置いてあるディレクトリの.htaccessが認証したログのみ

検索もいいですが、マニュアルをまず読みましょう。
http://httpd.apache.org/docs/2.2/ja/ の「ログファイル」の部分。

ユーザがfooの場合というのを、下記で出来るかと思ったのですが、
SetEnvIf Remote_User "^foo$" mylog
CustomLog logs/my_auth_log combined env=mylog

駄目でした。Remote_Userというのを認識してくれないみたい。(Apache2.2)

URLで範囲を絞ってと言うことでいいなら、これで出来ます。
SetEnvIf Request_URI "^/mydir/" mylog
CustomLog logs/my_auth_log combined env=mylog
    • good
    • 0

認証要求が出る元になったアクセスは、401 という応答をブラウザに返し、401というコードでaccess_logに載ります。



例:
10.1.1.1 - - [19/Feb/2010:12:34:00 +0900] "GET /text.txt HTTP/1.1" 401 1111 "-" "ブラウザ情報"

この401という応答ステータスを受け取ったブラウザは、認証ダイアログを出します。

認証後のアクセスが普通にaccess_logに出ますが、そこにユーザ名が載ります(標準的な設定の場合)。

例:
10.1.1.1 - hashi2246 [19/Feb/2010:12:34:56 +0900] "GET /text.txt HTTP/1.1" 200 1111 "-" "ブラウザ情報"


したがって、何時認証されたかを知りたければ、401の次の、同じリクエスト内容で、ユーザ名が載ったログの時刻を見ればいいです。

実際にやってみて、access_log を見るのがわかりやすいです。

この回答への補足

回答ありがとうございます。
acccess.logを見てみました。
そこで追加質問なのですが、私の管理しているページの
認証についてだけ、別のファイルにログをとることは
できないでしょうか?
指定した場所に他のログとは別にして自分のページが置いてある
ディレクトリの.htaccessが認証したログのみ
記録したものが作成したいのです。
可能でしょうか?

補足日時:2010/02/22 07:53
    • good
    • 0

私も Apache は使ったことがないので何もわけわからない状態です。


なので Google で検索してみました。
http://www.google.com/search?hl=ja&lr=lang_ja&ie …

上から 3件目ぐらいに試してみる価値がありそうな記事がありました。
http://q.hatena.ne.jp/1243208794

10分もかからず辿り着きましたので、質問者さんは既にお試し済みで、これでは実現できなかったというのならごめんなさい。
調べてなかったのなら調べてみる癖をつけてないと、この先やっていけなくなりますよ。

この回答への補足

回答ありがとうございました。
自分なりに検索してみたのですが、紹介して頂いたページは
見ていませんでした。ありがとうございます。
customlogを利用すれば何とかできそうな感じがしますが、
初心者のため、customlogなどの設定をどこに書き込めば良いのか
わかりません。
可能であればログファイルの記録場所も指定したいのですが、
良い方法はあるでしょうか?

補足日時:2010/02/22 08:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!