WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:htaccessのユーザー認証で分岐?

0:[投稿] Hisa [2002/05/11 10:22 ][環境:WIN+IE UNIX系+OTHER]

AuthUserFile /home/.../.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter username and password"
AuthType Basic

require valid-user

でユーザー認証を掛けてるのですが
ある指定ユーザーまたはパスワードで入室したときに表示するページを変えることは出来ますか?

ユーザ名 AAAで入ったらindex.html
BBBならB.html
を表示するって感じです。

ヨロシクお願いします。


1:[回答] 匿名な人 [2002/05/13 10:19 ]

http://www.mikeneko.ne.jp/~lab/web/htaccess/
素人の匿名な人が、みるかぎり、htaccessだけでは、無理そうですね。

識者のご御意見お待ちしています。


2:[回答] えび [2002/05/13 12:48 ]

 CGI なら環境変数 REMOTE_USER にユーザ名が入っているので、それを見て処理を分けられます。
 CGI を使わない場合は、mod_rewrite で REMOTE_USER の値を見てどうにかできるのではないかと……。やったことがないので自信なしですが。


3:[回答] ふじ [URL] [2002/05/13 16:29 ]

mod_rewrite が使えるならできますよ。

RewriteEngine On

RewriteCond %{REMOTE_USER} AAA
RewriteRule index.html aaa.html

RewriteCond %{REMOTE_USER} BBB                                                                    
RewriteRule index.html bbb.html

RewriteRule の部分は適宜書き換えてください。


4:[完了] Hisa [2002/05/13 18:11 ]

有り難うございます。

認証後のTOP PAGEがCGI出力なので(書いておくべきでしたね)
REMOTE_USERで対応したいと思います。


5:[関連] D.D. [2002/05/14 00:47 ]

Basic認証ならば HTTP でやりとりしているだけだったと思うから、
HTTP Response Header を読めばなんとかなる気がする。
誰かやったことある人います?


6:[回答] ふじ [URL] [2002/05/14 15:45 ]

>>5
> Response Header
Request Header?

Apacheモジュールとして動作しているPHPならすべてのヘッダを取得できる
(getallheaders) ので、自前で Basic 認証の処理ができます。
http://www.google.com/search?q=php+php_auth_user&hl=ja&lr=lang_ja

mod_perl だったら Apache::AuthDBI というモジュールがあるぐらいなので、可能でしょう。

普通のCGIだと、すべてのヘッダは読み取れないような。

CGIから status:401 と WWW-Authenticate ヘッダを返してやれば、
ブラウザに認証ダイアログを開かせることはできます。
が、CGIからは Authorization ヘッダを環境変数から取得できないようで、
ブラウザから送られてきている認証情報を処理できません。
# 手元の Apache-1.3.23 で確認。


7:[回答] andi [2002/05/14 16:28 ]

検証せずに(またか)情報を集めただけですが、以前にこんな物を書きました(^^;

http://www.ac.wakwak.com/~andi/document/tips/001.html


8:[回答] えび [2002/05/14 19:28 ]

 環境変数に入れたりすると他人に読まれてしまう可能性がありますが……。


9:[回答] andi [2002/05/14 21:27 ]

ふむふむ。どうすれば良いですか?アドバイス下さい。
もし良い方法があれば、情報にまとめさせて頂きたいです。
宜しくお願いします。m(_ _)m


10:[回答] えび [2002/05/15 12:15 ]

 というか、そもそも CGI で Authorization が取れないのは何故かというと、環境変数で渡してしまったら他のユーザから見られてしまったりする可能性があるためです。
 他に CGI に渡す方法はおそらく無いので、認証は HTTPd に任せて、CGI 側は REMOTE_USER を見て判断するしかないのではないかと……。

 もちろん、サーバに他のユーザがいないとか、見られても問題ないというのであれば全く問題はないわけですから、その方法も状況によっては非常に有効だと思います。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World