ApacheのBasic認証設定について教えてください。


<環境>
Apache/2.0.54
FedoraCore4

<質問>
『HEADメソッドのみ無条件にアクセスを許可して、そのほかのメソッドは全てBasic認証を要求』
というように設定したいのですが、下記のように.htaccessを記述したところ、GETメソッドも無条件にアクセスできてしまします(POSTなどはBasic認証されます)。
要求どおりの設定を行うにはどのように、記述すればよいのでしょうか?

[.htaccessの内容]

SSLRequireSSL
AuthUserFile /etc/httpd/conf/passwd
AuthGroupFile /dev/null
AuthName "Please enter username and password"
AuthType Basic

<LimitExcept HEAD>
Require user administrator
</LimitExcept>

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/07/01 17:56:24
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:toohigh No.1

回答回数291ベストアンサー獲得回数37

ポイント60pt

Limit系のディレクティブによるアクセス制御では HEAD / GET をまとめて "GET" キーワードで制御する仕組みになっています。それでうまくいかないのでしょう。

対策ですが、こんな感じでいかがでしょうか。

SetEnvIf Request_Method HEAD headreq

<Directory /docroot>

Order Allow,Deny

Allow from env=headreq

Require user administrator

Satisfy Any

</Directory>

・HEAD メソッドなら、環境変数をセット

・どちらかの条件が満たされたらアクセス許可

(1) 環境変数がセットされている

(2) BASIC 認証が通っている

・・・という感じですね。

id:varjak

なるほど、GETとHEAD区別しないんですね

もっとマニュアルをよく読みます・・

対策もうまくいきました

とても助かりました、有難うございました

2006/07/01 17:55:16

コメントはまだありません

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

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

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

回答リクエストを送信したユーザーはいません