• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.htaccessでIPアドレス拒絶後、一部許可)

htaccessでIPアドレス拒絶後、一部許可

このQ&Aのポイント
  • .htaccessを利用して「192.168.0.0/16」のIPアドレスの範囲のアクセスを拒絶し、かつ、「192.168.240.29」のみのアクセスを許可する方法を紹介します。
  • 使用する「.htaccess」ファイルに以下の記述を追加します。 order allow,deny allow from all deny from 192.168.0.0/16 allow from 192.168.240.29
  • 上記の設定では、「192.168.0.0/16」のIPアドレスの範囲全体が拒絶されてしまうため、「order allow,deny」の後に「allow from 192.168.240.29」を追加して、「192.168.240.29」のみのアクセスを許可します。

質問者が選んだベストアンサー

  • ベストアンサー
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.3

apache のアクセスログ、エラーログは確認されましたか。 エラーログには [error] [client 192.168.0.201] client denied by server configuration: のような感じで出ていると思います。 まさかとは思いますが、プロキシーを使っていて、思っているIPと違うアドレスでアクセスされているということはありませんか。

bbrc
質問者

お礼

t-okuraさん ご回答、ありがとうございました。 今回の.htaccessの記述は以下のようにしました。 order allow,deny allow from all deny from 192.168.0.0/16 そして、プロキシーを使用して192.168.0.0/16以外のアドレスでサイトに接続しています。これで、一様、問題ありません。

その他の回答 (2)

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.2

参考URLを見てもらうとよいのですが、 order deny,allow は >Deny,Allow > Deny ディレクティブが Allow ディレクティブの前に評価されます。 > アクセスはデフォルトで許可されます。Deny ディレクティブに合わないか、 > Allow ディレクティブに合うクライアントはアクセスを許可されます。 となります。「アクセスはデフォルトで許可」されるので、明示的に拒否していなければ許可されます。 もちろん、order allow,deny でも可能ですが、その場合は、 allow from all deny from 192.168.0.0/24 deny from 192.168.1.0/24 ... deny from 192.168.240.28 deny from 192.168.240.30 ... deny from 192.168.255.0/24 のように 192.168.240.29 を除いて列挙することになります。現実的ではありませんよね。

参考URL:
http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order
bbrc
質問者

補足

t-okuraさん ご回答、ありがとうございました。 order deny,allow deny from 192.168.0.0/16 allow from 192.168.240.29 を試しましたが、 order allow,deny allow from all deny from 192.168.0.0/16 allow from 192.168.240.29 とやったときと同様に「92.168.240.29」も拒絶されます。 なぜか分かりません。

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

拒否してからその一部を許可するのは、order deny,allow ですね。 order deny,allow deny from 192.168.0.0/16 allow from 192.168.240.29 でいけると思います。

bbrc
質問者

お礼

t-okuraさん ご回答、ありがとうございました。 >拒否してからその一部を許可するのは、order deny,allow ですね。 今回の場合、「192.168.0.0/16」のIPアドレスの範囲(192.168.240.29は除く)以外のアクセスは全て(192.168.240.29を含む)受け入れたいので.htaccessの書き出しは以下のようになるかと思います。 order allow,deny allow from all 下記URLの「.htaccessで特定のドメインを弾く」項目を参照 http://yuzuriha.sakura.ne.jp/~akikan/kaigai/kaigai6.html

bbrc
質問者

補足

t-okuraさん ご回答、ありがとうございました。 間違って、お礼の欄に補足を記述してしまいました。 >拒否してからその一部を許可するのは、order deny,allow ですね。 今回の場合、「192.168.0.0/16」のIPアドレスの範囲(192.168.240.29は除く)以外のアクセスは全て(192.168.240.29を含む)受け入れたいので.htaccessの書き出しは以下のようになるかと思います。 order allow,deny allow from all 下記URLの「.htaccessで特定のドメインを弾く」項目を参照 http://yuzuriha.sakura.ne.jp/~akikan/kaigai/kaigai6.html

関連するQ&A