【緊急】.htaccessで「IPアドレスがAかBで、なおかつBasic認証に通ればアクセス可能」という事をやりたいのですが、うまくいきません。どのような原因があるか分かる方がいらっしゃいましたらご教授をお願いします。


【参考URL】http://linuxexpert.ne.jp/modules/pukiwiki/123.html

ちなみにApaccheの設定は、以下のようになっていました。

<Directory />
Options All
AllowOverride All
</Directory>

以下のようにBasic認証のみだとうまくいくようです。

AuthUserFile /xxx/xxx/xxx/.htpasswd
AuthGroupFile /dev/null
AuthName "Restricted Files"
AuthType Basic
require valid-user

回答の条件
  • 1人3回まで
  • 登録:2008/08/02 11:00:46
  • 終了:2008/08/02 14:16:33

ベストアンサー

id:tomqlo No.2

tomqlo回答回数22ベストアンサー獲得回数22008/08/02 13:06:59

ポイント100pt

仮に“Internal Server Error 500”であれば“記述が間違っている”ということになります。

しかし、見たところ.htaccessへの記述方法は正しいので、おそらくApacheのhttpd.confの設定が

 allow from ~

 deny from ~

を受け付けないようになっているのだと考えられます。

httpd.confを公開なされば原因究明も進むと思いますが、セキュリティのことなどを考えるとそうしたくはないでしょうから

詳しいエラーの原因が出力されている error.log を参考にしてみてはいかがでしょうか?

id:ha_te_na_com

エラーログを参照したところ、以下のようになりました。

... [alert] ... /xxx/xxx/xxx/.htaccess: order not allowed here

... [error] ... File does not exist: /xxx/xxx/xxx/favicon.ico, referer: http://xxx/xxx/index.html


【追記:解決】ありがとうございました。エラーログを見て、「allow」を受け付けない設定になっているという前提で再度調べてみた結果、<Directory />〜</Directory>の他に、設置ディレクトリに対してダイレクトに命令を与えているコードを見付けました。引継ぎでの作業で見落としでした。現在は理想通りに動作しています。重ねてありがとうございました。

2008/08/02 14:15:04

その他の回答(1件)

id:pi12345 No.1

pi12345回答回数263ベストアンサー獲得回数102008/08/02 11:48:41

ポイント25pt

特定のホストのアクセスだけを許可する

次の例は逆に、特定のホストからだけのアクセスを許可し、他の全てを拒否する設定例です。order の順序が逆になっている点に注目してください。

# いくつかのドメインのみ、アクセス許可

order deny,allow

deny from all

allow from .mikeneko-u.ac.jp # ミケネコ大学からのアクセスを許可する

allow from .mikeneko.ne.jp # ミケネコNETからのアクセスを許可する

allow from localhost # 端末に直接繋がったマシンからのアクセスを許可する

有名なサイトですので、すでにご存知かもしれませんが。

http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/auth.html

id:ha_te_na_com

ありがとうございます。「IPアドレスがAかBで、なおかつBasic認証に通ればアクセス可能」というケースですので若干内容が異なります。

コードは以下の形で書きましたが、“Internal Server Error”になります。

deny from all

allow from xxx.xxx.xxx.xx

allow from xxx.xxx.xxx.xx

AuthType Basic

AuthName "Restricted Files"

AuthUserFile /xxx/xxx/xxx/.htpasswd

require valid-user

satisfy all

以下の形だとBasic認証の画面になりエラーにはなりません。

AuthType Basic

AuthName "Restricted Files"

AuthUserFile /xxx/xxx/xxx/.htpasswd

require valid-user

入力したIPの値は、IPチェックなどで表示されるものを使用しています。

固定IPとしてプロバイダから通知されたものと同様です。

2008/08/02 13:01:06
id:tomqlo No.2

tomqlo回答回数22ベストアンサー獲得回数22008/08/02 13:06:59ここでベストアンサー

ポイント100pt

仮に“Internal Server Error 500”であれば“記述が間違っている”ということになります。

しかし、見たところ.htaccessへの記述方法は正しいので、おそらくApacheのhttpd.confの設定が

 allow from ~

 deny from ~

を受け付けないようになっているのだと考えられます。

httpd.confを公開なされば原因究明も進むと思いますが、セキュリティのことなどを考えるとそうしたくはないでしょうから

詳しいエラーの原因が出力されている error.log を参考にしてみてはいかがでしょうか?

id:ha_te_na_com

エラーログを参照したところ、以下のようになりました。

... [alert] ... /xxx/xxx/xxx/.htaccess: order not allowed here

... [error] ... File does not exist: /xxx/xxx/xxx/favicon.ico, referer: http://xxx/xxx/index.html


【追記:解決】ありがとうございました。エラーログを見て、「allow」を受け付けない設定になっているという前提で再度調べてみた結果、<Directory />〜</Directory>の他に、設置ディレクトリに対してダイレクトに命令を与えているコードを見付けました。引継ぎでの作業で見落としでした。現在は理想通りに動作しています。重ねてありがとうございました。

2008/08/02 14:15:04
  • id:b-wind
    あなたが実際に書いたコードをすべて提示してください。
    あと、「うまくいきません。」とはどのような状態になったのかを説明してください。
    以上が分からないと回答は難しいです。
  • id:ha_te_na_com
    ha_te_na_com 2008/08/02 11:25:38
    ありがとうございます!以下の形で書きました。
    “Internal Server Error”になります。

    --ここから
    deny from all
    allow from xxx.xxx.xxx.xx
    allow from xxx.xxx.xxx.xx

    AuthType Basic
    AuthName "Restricted Files"
    AuthUserFile /xxx/xxx/xxx/.htpasswd
    require valid-user

    satisfy all
    --ここまで

    以下の形だとBasic認証の画面になりエラーにはなりません。

    --ここから
    AuthType Basic
    AuthName "Restricted Files"
    AuthUserFile /xxx/xxx/xxx/.htpasswd
    require valid-user
    --ここまで
  • id:ha_te_na_com
    ha_te_na_com 2008/08/02 11:47:02
    IPが適合せずにエラーになるのでしょうか。。
    入力したIPの値は、IPチェックなどで表示されるものを使用しています。
    固定IPとしてプロバイダから通知されたものと同様です。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません