2012-01-04 10 views
6

の要求するとき、私は、次の.htaccessファイルを持っている "認証が必要" 取得しますすべて正常に動作し、認証プロンプトなしでindex.phpが表示されます。しかし、私が "IP-ADDRESS /"を要求するとすぐに、ブラウザは私の資格情報を求めます。は/の代わりに私のサーバー上で/index.php

これはなぜですか?私は何が欠けていますか?

+0

あなたは文字どおり正確に同じ問題を抱えていて、私と同じようにセットアップしました。どのような偶然の一致 –

答えて

7

<Files>の代わりに、mod_setenvifを使用してリクエストURIをチェックするようにブロックを交換してください。 mod_auth *モジュールはmod_dirより優先されるため、/から/index.phpへのマッピングは、authが実行されるまで発生しません。 Mod_setenvifはauthの前に発生します。試してみてください:

SetEnvIf Request_URI "^/$" allow=yes 
SetEnvIf Request_URI "^/index.php$" allow=yes 

AuthType Basic 
AuthName "Password Required" 
AuthUserFile /var/www/webinterface/.htpasswd 
Options +FollowSymLinks 
Order Deny,Allow 
Satisfy any 
Deny from All 
Require valid-user 
Allow from env=allow 

要求されたURIが正確/または/index.phpであれば、変数allowが設定されます。 Auth行の後のものは、変数allowが設定されている場合、有効なユーザまたは以外のすべてを拒否すると言います。

+0

うわー、私は深く感銘を受けた。それは素晴らしいアンサーでした。ありがとうalot – ftiaronsem

+0

AuthTypeで始まるブロックを,またはなどの指示に入れる必要はありませんか? –

+0

これとは正反対のやり方を理解できますか?パスワード保護のないディレクトリ内のすべてのファイルとサブディレクトリへのアクセスを許可したいのですが、/または/index.phpにパスワード認証を要求したいと考えています。 index.phpファイルをパスワードで保護すると、パスワードなしでアクセスできます。私は上記の答えは、私が上記を逆にして私のケースでうまくいくようにするのに必要なルールを含んでいると思うが、私はSetEnvIfなどを書いても分かりません。 – WilliamAlexander

関連する問題