2011-10-05 17 views
36

私はURLへのアクセスを制限したいと思います。彼らは特定のIPアドレスから来ている場合は、パスワードを入力する必要はありません。それらがgivin IPアドレスから来ていない場合は、パスワードの入力が求められます。htaccess - パスワードまたはIPホワイトリストを使用

ので、いずれかまたはの:

AuthUserFile /some/path/.htpasswd 
AuthName "Please Log In" 
AuthType Basic 
require valid-user 

と:

order deny,allow 

deny from all 
allow from x.x.x.x 

答えて

60

あなたは、Apache "Satisfy"ディレクティブを使用することができます。ここで

は、それを使用しての例です:パスワードなし

AuthType Basic 
AuthName "Please Log In" 
AuthUserFile /some/path/.htpasswd 
Require valid-user 
Order deny,allow 
Deny from all 
Allow from 127.0.0.1 
Satisfy any 

のアクセスは、127.0.0.1から許可されます。

これが役に立ちます。 Apacheの2.4 Satisfy

+0

+1を一覧表示することができます。さらに、いくつかのディレクトリ(例:public /)のチェックを無効にしたい場合は、サブディレクトリの '.htaccess'に入れてください: – pwes

+0

'すべて許可する 'と '満足してください' – pwes

+0

@Bob:動作していますか? – FbnFgc

4

はまだ利用可能ですが、deprecated

mod_access_compatが提供するディレクティブはmod_authz_hostによって廃止されました。 オーダー、許可、拒否などの古いディレクティブを、要求のような新しいディレクティブと混在させることは、技術的に可能ですが推奨されません。このモジュールは、古いディレクティブのみを含む設定をサポートして、2.4アップグレードを容易にするために作成されました。詳細については、アップグレードガイドを参照してください。あなたのケースAllow from 1.2.3.4


Require valid-userRequire ipなど)いくつかのRequire sがAuthorization Containersによって行うことができる組み合わせRequire ip 1.2.3.4

に置き換えられます。したがって、クライアントは、パスワードを提供するか、特定のIPアドレスから来る必要があり、指示書をRequireAnyで囲むことによって行われます。

<RequireAny> 
    Require valid-user 
    Require ip 1.2.3.4 
</RequireAny> 

、これは複数の要求指示を単一の構成部分で使用され、<RequireAll>ような別の許可指示に含まれていない場合Require

の最後で説明したように特殊なケースであるが、それらは暗黙的に<RequireAny>ディレクティブに含まれています。したがって、ユーザーを認可する最初のものは要求全体を認可し、後続のRequireディレクティブは無視されます。言い換えれば

は、RequireAnyはここにオプションで、あなただけの、これは私が何をすべきか正確に

Require valid-user 
Require ip 1.2.3.4 
関連する問題