3

私は次のことを試しましたが、うまくいきません(アクセスしたいIPを含むファイルに誰もアクセスできません)

<Files something.php>
Order allow,deny
Deny from all
allow from zzz.zzz.zzz.zzz
</Files>

1 つの IP を除く全世界に対してファイルへのアクセスを拒否したいのですが、どうすればよいですか? ありがとう

4

3 に答える 3

1

ここにある回答の1つである古い投稿で私の回答を見つけました: .htaccess: how to restrict access to a single file by IP? 、正しいは次のとおりです。

 <Files something.php>
 Order deny, allow
 Deny from all
 allow from zzz.zzz.zzz.zzz
</Files>

オリジナルから「注文許可、拒否」を「注文拒否、許可」に変更したところ、うまくいきました!

于 2012-11-28T02:10:24.717 に答える
1

機能しなかった理由は、DenyディレクティブがディレクティブをオーバーライドしたためAllowです。は何ですかOrder Allow,Deny

  1. を評価Allowし、一致するものがある場合は「許可」にフラグを立てます。
  2. を評価Denyし、一致するものがある場合は「拒否」のフラグを立てます (以前に と一致した場合でもAllow)
  3. フラグを評価します。フラグが設定されていない場合は、拒否します。

そのため、すべてのリクエストを拒否したくない場合は削除する必要があります。MickeyRoush's answer のメモです。 Deny from All

に関してはOrder Deny,Allow、それは「反対」です:

  1. を評価Denyし、一致するものがある場合は「拒否」のフラグを立てます。
  2. を評価Allowし、一致するものがある場合は「許可」のフラグを立てる (以前に と一致した場合でもDeny)
  3. フラグを評価します。フラグが設定されていない場合は許可します。

詳細については、MickeyRoush が提供したリンクを参照してください。

于 2015-02-19T05:38:02.023 に答える
0

実際に使用した最初のディレクティブは機能しますが、正しい場所に配置する必要があります。

Order Allow,Deny
<Files something.php>
Allow from zzz.zzz.zzz.zzz
</Files>

必須ではないため、すべてから拒否を削除したことに注意してください。

http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order

于 2012-12-18T18:21:28.287 に答える