57

特定のディレクトリに対して.htaccess/.htpasswdアクセス制御を設定することは可能ですが、特定のIPアドレスからのものである場合は、ログイン/パスワード認証をバイパスしますか?

私はあなたが.htaccessファイルでこのようなことをすることができることを知っています:

order deny,allow
deny from all
allow from 000.000.000.000

しかし、これらの線に沿って何かを追加すると、次のようになります。

AuthType Basic
AuthName "restricted area"
AuthUserFile /path/to/.htpasswd
require valid-user

次に、パスワードの入力を求められます。特定のIP(またはIPのセット)としてのユーザーがパスワードの入力を求められないように、if / elseタイプのセットアップ、またはその他の解決策を実行する方法はありますか?

4

6 に答える 6

87

バージョン 2.2.X の場合、以下を使用できます...

AuthUserFile /var/www/mysite/.htpasswd
AuthName "Please Log In"
AuthType Basic
require valid-user
Order allow,deny
Allow from xxx.xxx.xxx.xxx
satisfy any

明らかに、ユーザーファイルへのパスと、認証をバイパスしたい IP アドレスを置き換えます。

詳細の詳細な説明は、http: //httpd.apache.org/docs/2.2/howto/auth.htmlにあります。

于 2012-05-14T13:29:41.777 に答える
24

apache >=2.4 を使用する場合、次のようになります。

<If "%{REMOTE_ADDR} != '127.0.0.1'">
  AuthType Basic
  AuthName "restricted area"
  AuthUserFile /path/to/.htpasswd
  require valid-user
</If>

詳細については、ドキュメントをご覧ください。

于 2012-05-02T18:41:29.690 に答える
2

j5Devの答えに加えて:

# Interne IP-Adressen
SetEnvIf Remote_Addr "^127\.0\.0\.1$" IsIntern
SetEnvIf Remote_Addr "^192\.168" IsIntern
# .. add more IP addresses or ranges here

# Authentication, wenn nicht intern
AuthUserFile /path/to/.htpasswd
AuthName "restricted area"
AuthType Basic
require valid-user
Order allow,deny
Allow from env=IsIntern
satisfy any
于 2013-03-12T13:38:44.810 に答える