- ベストアンサー
htaccessで特定のIPアドレスのみアクセスを許可する方法
- htaccessを使用して特定のIPアドレスのみアクセスを許可する方法について説明します。
- 具体的には、ネットマスクを利用してIPアドレス範囲を指定し、それ以外のIPアドレスからのアクセスを制限します。
- また、複数のIPアドレス範囲を指定する場合は、それぞれの範囲を別々に制限する必要があります。具体的な記述方法について説明します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
どちらのorderでも、指定できるのは、それぞれ一重のみです。 allow → deny → allow という指定はできません。 order allow,denyの時は、すべてのdenyに先立って、allowが解釈されるので、order行のあとにallow行とdeny行をどの順序で書いても、 order allow,deny allow from all allow from 118.243.126.243 deny from 118.243.0.0/16 となり、結局118.243.126.243はdenyされてしまいます。「(デフォルトが全部denyで)まずallowを解釈してから次にdenyを解釈する」というのが「order allow,deny」の意味です。 order allow,deny deny from 118.243.0.0/16 allow from 118.243.126.243 allow from all と書いても意味は上のものと同じ。 逆に、「(デフォルトが全部allowで)まずdenyを解釈してから次にallowを解釈する」というのが、「order deny,allow」の指定なので、 ・禁止したいレンジを指定 ・その中で特定IPを許可 の場合は、こっちを使います。 >Order Deny,Allow >を利用している例はあまり見かけませんが、 多くの場合の要件は、「xxxを禁止」と、一重の禁止だけなので、どっちでもいいです。 「デフォルト許可の中の、xxxxを禁止だが、その中のxxだけ許可したい」 ⇒ order deny,allow 「デフォルト禁止の中の、xxxxを許可するが、その中のxxだけ禁止したい」 ⇒ order allow,deny これ以外のパターンは、変形してどちらかのパターンにします。
その他の回答 (2)
- localica
- ベストアンサー率52% (202/385)
お礼
localicaさん ご回答、ありがとうございました。 こちらは、当方も何度も読みましたが、理解できませんでした。
- notnot
- ベストアンサー率47% (4900/10358)
>基本的に「118.243.0.0/16」以外のIPアドレスからのアクセスは全て許可し、かつ、「118.243.0.0/16」に含まれる118.243.126.243からのアクセスも許可したいのです。 deny,allowの基本機能でOKです。 Order Deny,Allow # デフォルトで全IPをallow deny from 118.243.0.0/16 #特定のレンジをdeny allow from 118.243.126.243 #そのレンジの中の特定のIPをallow
補足
notnotさん ご回答、ありがとうございました。 上記のご回答でちゃんと動作しているみたいです。 ただ、今までは、notnotさんに教えてもらった Order Deny,Allow の代わりに order allow,deny allow from all としてから deny from 118.243.0.0/16 allow from 118.243.126.243 などの拒絶条件を記入していました。 これでは、 allow from 118.243.126.243 が、検証した結果動作しませんでした。 しかし、なぜだか理解できません。 なぜ、 order allow,deny allow from all ではだめなんでしょうか? また、 Order Deny,Allow を利用している例はあまり見かけませんが、 order allow,deny allow from all でなくて、大丈夫なんでしょうか? よろしくお願いします。
お礼
notnotさん ご回答、ありがとうございました。 了解しました。