<環境>
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>
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 認証が通っている
・・・という感じですね。
なるほど、GETとHEAD区別しないんですね
もっとマニュアルをよく読みます・・
対策もうまくいきました
とても助かりました、有難うございました