xxx.xxx.xxx.xxxだけが見れるようにしたい。
全体を拒否してから、一部許可する場合は「Order Allow,Deny」だったはず。でもAllowが先なのに全体を拒否ってなんかわかりにくいから、その後に「Deny From all」を入れて、「Allow from xxx.xxx.xxx.xxx」と入れたわけです。まとめると以下。
Order Allow,Deny Deny from all Allow from xxx.xxx.xxx.xxx
結果、誰も見れない。
素直に下記のように変更。
Order Allow,Deny Allow from xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxxだけが見れる。なぜだ!
こういうときは公式マニュアルを読もう…。mod_authz_host – Apache HTTP Serverによると、
- Allow,Deny
- Allow ディレクティブが Deny ディレクティブの前に評価されます。 アクセスはデフォルトで拒否されます。Allow ディレクティブに合わないか、Deny ディレクティブに合うクライアントはアクセスを拒否されます。
ふむむ。「Allow ディレクティブに合わない」ということはxxx.xxx.xxx.xxxではないクライアントは全て拒否される。そして、「Deny ディレクティブに合うクライアントはアクセスを拒否」ということは、全てのクライアントが拒否されるわけだから…誰もアクセスできないが成り立つ!
いまいちまだ直感的に理解できないけど、とりあえず解決。