人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

.htaccessの設定で質問がございます。
下記のような設定をすることは可能でしょうか?また、実施どのように設定するでしょうか?

(1)2つの特定IPからしかアクセスは認めない。それ以外は403エラー
(2)IP(a)からアクセスした場合は、BASIC認証はかからないで、そのままアクセス可能
(3)IP(b)からアクセスした場合は、BASIC認証がかかり、ID/PASSをいれないとアクセスが不可能

以上の場合、.htaccessはどのように記載すれば良いでしょうか
どうぞ、よろしくお願いいたします。

●質問者: knsket
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● パパトモ
●50ポイント

できますよ。

例えば

Deny from all
Allow from 10.1.2.3
Allow from 10.1.2.10


と書けば、10.1.2.3と10.1.2.10からアクセスできます。Denyで不許可した後に、Allowで許可します。詳しくは、mod_accessのリファレンスを見てもらえればと思います。色々と例題もありますから、試してみると良いと思います。

リファレンスマニュアル:
http://httpd.apache.org/docs/2.0/ja/mod/mod_access.html

追記:
BASIC認証との組み合わせも可能です。

Deny from all
Allow from 10.1.2.3
Allow from 10.1.2.10
AuthName "for Admin"
AuthType Basic


とか。

アドレスによって変えるためには、RewriteCondやRewriteRuleを使ってルールを書かなければならないと思います。かなり難易度は高いです。

良い例題を見つけたら報告します。


パパトモさんのコメント
私なら、2つのルールがあるなら、2つのURLを用意して、aliasを使って同じフォルダにアクセスさせます。 そして、それぞれに2番目の例題のような制限を書きます。違うURLでのアクセスになりますが、実際にアクセスするフォルダが同じになります。 この方法が気に入っているのは、別々の制限を分かりやすく書けるからです。

2 ● TransFreeBSD
●50ポイント

apache2.4からは<SatisfyAll>, <SatisfyOne>ディレクティブが使えるようです。
http://httpd.apache.org/docs/current/ja/howto/auth.html#beyond
試した事はないのですが、これでいくと、

AuthType Basic
AuthName "hogehoge"
AuthUserFile /path/to/passwords
Require ip 192.168.x.a
<SatisfyAll>
 Require ip 192.168.x.b
 Require valid-user
</SatisfyAll>

こんな感じになると思います。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ