Apacheでアクセス制限をかけるときに、「Deny」と「Allow」が関係がよくなからないよ!って話を聞くのでまとめておきます。
まずは指示子から。
order・・・「allow」と「deny」を評価する順に記載する。
allow・・・許可するものを書く
deny・・・拒否するものを書く
実際に書いてみたた時の意味は次のとおり。
Denyを Allow より先に書くとDenyが先に評価されます。このままだと、アクセスはデフォルトで許可されます。
Order deny, allow
Allow を Deny より先書くとAllowに評価されるため、アクセスはすべて拒否されます。
Order allow, deny
上記の例だとすべてOK or NGしかないので実際に設定してみる。
all:すべて / 127.0.0.1:自分自身
例1
order deny,allow
allow from 127.0.0.1
deny from all
この場合は、最初に「deny」が評価させるので、まずは全てのアクセスを拒否します。
その次に「allow」が127.0.0.1を許可する。
例2
order allow,deny
allow from all
deny from 127.0.0.1
この場合は、最初に「allow」がが評価させるので全てのアクセスを許可する。
その次に「deny」が評価され、127.0.0.1からのアクセスを拒否します。
次の設定をやってしまうと全てのアクセスを拒否してしまうので注意!
Order allow,deny
Deny from all
Allow from 127.0.0.1
この場合は、最初に「allow」が評価させるので127.0.0.1からアクセスを許可する。
その次に「deny」が評価され、すべてからのアクセスを拒否します。
127.0.0.1を許可した意味がない。。。