<Directory "/usr/local/apache/somewhere">
Options All
Order allow,deny
Allow from hostA
</Directory>
という制御を行っているのですが、同じディレクトリにホストBがアク
セスしてきた時にはパスワードを要求する、というような制御は出来る
のでしょうか?
--
石川 淳 国立感染症研究所
(Jun Ishikawa) 生物活性物質部第四室
j...@nih.go.jp (旧遺伝生化学室)
Tel. 03-5285-1111 Fax 03-5285-1272
http://nocardia.nih.go.jp/
I hate damn sequences!
In article <JUN.03Se...@watson.nih.go.jp>
j...@nih.go.jp writes:
> あるディレクトリに対して
> <Directory "/usr/local/apache/somewhere">
> Options All
> Order allow,deny
> Allow from hostA
> </Directory>
> という制御を行っているのですが、同じディレクトリにホストBがアク
> セスしてきた時にはパスワードを要求する、というような制御は出来る
> のでしょうか?
httpd は、Apache ですよね。一応、この間同じことをシンボリッ
ク・リンクを張ってごまかしてやりました。
ln -s /usr/local/apache/somewhere /usr/local/apache/somewhere2
で、後は、<Directory "/usr/local/apache/somewhere2"> に対し
て、パスワードを聞いてくるように設定します。
ただ、なんかもっとスマートにできる方法を発見した気がしたんで
すが、忘れました。気がしただけかもしれません。
今、Apache のドキュメントを見ていたら、こんなものがでてきま
した。
http://httpd.apache.org/docs/howto/auth.html
------------------------------------------------------------
<Directory /usr/local/apache/htdocs/sekrit>
AuthType Basic
AuthName intranet
AuthUserFile /www/passwd/users
AuthGroupFile /www/passwd/groups
Require group customers
Order allow,deny
Allow from internal.com
Satisfy any
</Directory>
------------------------------------------------------------
この Satisfy any というのが、それっぽいんじゃないですか。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
> この Satisfy any というのが、それっぽいんじゃないですか。
Satisfy any や Satisfy all は確かにor条件,and条件ですが,入れ子にでき
ないんですよね…
石川さんがやりたいのは,
hostA または (hostB かつ パスワード)
なわけですが,
<Directory dir>
hostAなら許可
</Directory>
<Directory dir>
hostBなら許可
パスワードで許可
Satisfy all
</Directory>
と書いても,
<Directory dir>
hostAなら許可
hostBなら許可
パスワードで許可
Satisfy all
</Directory>
とみなされてしまって,意図どおりになりません.
新城さんが書いたシンボリックリンクのトリックを使って,
<Directory realname>
hostAなら許可
</Directory>
<Directory alias>
hostBなら許可
パスワード)なら許可
Satisfy all
</Directory>
と書くとほぼ意図どおりのアクセス制御が出来ますが,hostAからとアクセス
する場合とhostBからの場合で,URLを変える必要がありますね.
もし,
<Directory foo>
<Satisfy Any>
<ClientMatch>hostA</ClientMatch>
<Satisfy All>
<ClientMatch>hostB</ClientMatch>
<Auth type=basic userfile=... require=valid-user />
</Satisfy>
</Satisfy>
</Directory>
とか書けると分かりやすいんでしょうけどねえ.
前田敦司
> httpd は、Apache ですよね。一応、この間同じことをシンボリッ
> ク・リンクを張ってごまかしてやりました。
シンボリックリンクを使う方法は思いついたのですが、
前田さんが<m34qzcr...@maedapc.cc.tsukuba.ac.jp>ご指摘のよう
に、URLが変わってしまいます。apacheのコンフィグレーションででき
ないとなると、それ用のCGIを作るとかしないとダメそうですね。そこ
までする気になれないので、シンボリックリンクでごまかそうと思いま
す。ありがとうございました。
記事 <m34qzcr...@maedapc.cc.tsukuba.ac.jp> で
MAEDA Atusiさんは書きました
> 新城さんが書いたシンボリックリンクのトリックを使って,
> <Directory realname>
> hostAなら許可
> </Directory>
> <Directory alias>
> hostBなら許可
> パスワード)なら許可
> Satisfy all
> </Directory>
> と書くとほぼ意図どおりのアクセス制御が出来ますが,hostAからとアクセス
> する場合とhostBからの場合で,URLを変える必要がありますね.
mod_rewrite を使って振り分けてやれば同じURLにできるんじゃないでしょうか。
<Directory realname>
RewriteCond %{REMOTE_HOST} ^hostA$
RewriteRule ^(.*)$ /aliasA/$1
RewriteCond %{REMOTE_HOST} ^hostB$
RewriteRule ^(.*)$ /aliasB/$1
</Directory>
<Directory aliasA>
hostAなら許可
</Directory>
<Directory aliasB>
hostBなら許可
パスワードなら許可
Satisfy all
</Directory>
といった感じで。
PROJECT TEAM DoGA 高津正道 ta...@doga.jp
TBD0...@nifty.ne.jp
PROJECT TEAM DoGAのホームページ → http://doga.jp/
9月17日(水) 今日のマーフィーの法則 [マッキーの法則]
急いでいるときは、車が完全に停止したとたんに信号機は青に変わる。