.htaccessでユーザ認証後、ユーザによって開くページを変えるには?

[上に] [前に] [次に]
葉月 1999/08/03(火) 23:12:27
.htaccessでユーザ認証後、ユーザによって開くページを変えるには
どのような方法があるのでしょうか?
.htaccess内の設定で、<Location URL>...</Loction>で、できるのでしょうか?
(実は、<Location>を試したのですが、うまく行かなかった...)

ユーザは、個別のユーザ名(例えば、usr1,usr2というように)で、ログインしたとき、
usr1の人は、aaa.htmlに、usr2の人は、bbb.htmlのページを開きたいのですが。

B-Cus 1999/08/03(火) 23:19:30
CGIを使えば環境変数 *AUTH* とかが設定されてるので、それを見て振り分けるのはダメ?

B-Cus 1999/08/03(火) 23:28:13
ちなみに<Location>、<Directory>ディレクティブは .htaccess 内では使えません。
おそらく Internal Server Error になるでしょう。

http://japache.infoscience.co.jp/japanese_1_3/manual/mod/core.html#location より
> Context: server config, virtual host

わかってらっしゃるのかもしれませんが一応書いておくと、<Location>は
Location: ヘッダとは全く意味が違います。

.htaccess 内で完結されるのは無理じゃないかなぁ…。
ユーザ名を特定できれば Redirect で飛ばせるかもしれない(できないかもしれない)
けど、ユーザ名を特定する方法ってあるのかしら。知ってる人教えて。

葉月 1999/08/03(火) 23:34:40
早速のお答え、ありがとうございます。

>CGIを使えば環境変数 *AUTH*
これは、検討してなかったですが、CGI(Perl)を使えば、cookieと絡めたりして
できると思うのですが、できれば、.htaccessでやりたかったのです。

開くページもhtmlファイルで、その個々のページにアクセス権を付けなければ
いけないという事情なのです。
# もうちょっと、詳しい事情が必要でしたら、おっしゃって下さい。

葉月 1999/08/03(火) 23:37:46
あ、発言がかぶってしまった...
実は、http://japache.infoscience.co.jp/japanese_1_3/manual/mod/core.html#location
も一読したのですが...理解できなかった私が、悲しい...
もうちょっと、よく読んでみます。。

B-Cus 1999/08/03(火) 23:46:32
ん〜、久しく http の auth は触ってなかったけど、ちょっと思い出してきた。

内容をディレクトリ単位で掘って、各ディレクトリ内に
 AuthName        page1
 AuthType        Basic
 AuthUserFile    /home/USER/.htpasswd
 AuthGroupFile   /dev/null
 require user1

 AuthName        page2
 AuthType        Basic
 AuthUserFile    /home/USER/.htpasswd
 AuthGroupFile   /dev/null
 require user2
などと、それぞれ書いておくというのは? .htpasswd には
 user1: ...
 user2: ...
と、ユーザごとのエントリを作っておく、と。ただし認証してから
振り分けるのではなく、あなたはここ、あなたはあそこ、と最初に
指示する必要がありますが。

> # もうちょっと、詳しい事情が必要でしたら、おっしゃって下さい。
興味があるので、よろしければ教えてほしいです。

葉月 1999/08/04(水) 01:00:25
>と、ユーザごとのエントリを作っておく、と。ただし認証してから
>振り分けるのではなく、あなたはここ、あなたはあそこ、と最初に
>指示する必要がありますが。
それも一案でありました。

詳しい事情なのですが、実は、仕事の関係です。(仕事でやりたくなかったのに...グチです)
あるソフトのダウンロード頁を作るのですが、
元は同じソフトで、ユーザの仕様によって若干ソフトの内容が変わるので、ユーザ個々のページ
をつくって、そのページからダウンロードできるようにするのと、そのソフトのリリース情報も
載せていきます。
ただ、そのリリース情報は、その頁に関係しないユーザには見られてはまずいのです。(^^;;;
よって、ページ個々の認証を付けたかったのです。

B-cusさんの言われるとおり、各ユーザ毎にディレクトリを作成し、その下にダウンロードページと
ダウンロードされるソフトを置くのがいいかもしれませんね。(サーバ内の整理もつきそうだし...)
B-cusさんの言われたようなやり方で、各ディレクトリに.htaccessを置いて、認証させるという
方法をやってみまして、これは、うまくいきました。
やっぱり、この方法がいいのかな?...

[上に] [前に] [次に]