- ベストアンサー
htaccessでIPアドレス拒絶後、一部許可
- .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」のみのアクセスを許可します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
apache のアクセスログ、エラーログは確認されましたか。 エラーログには [error] [client 192.168.0.201] client denied by server configuration: のような感じで出ていると思います。 まさかとは思いますが、プロキシーを使っていて、思っているIPと違うアドレスでアクセスされているということはありませんか。
その他の回答 (2)
- t-okura
- ベストアンサー率75% (253/335)
参考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 を除いて列挙することになります。現実的ではありませんよね。
補足
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)
拒否してからその一部を許可するのは、order deny,allow ですね。 order deny,allow deny from 192.168.0.0/16 allow from 192.168.240.29 でいけると思います。
お礼
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
補足
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
お礼
t-okuraさん ご回答、ありがとうございました。 今回の.htaccessの記述は以下のようにしました。 order allow,deny allow from all deny from 192.168.0.0/16 そして、プロキシーを使用して192.168.0.0/16以外のアドレスでサイトに接続しています。これで、一様、問題ありません。