先日、エイリアスの設定方法で、Allow
ディレクティブが上手く効かなかった事を書きました。
アクセスすることは出来たんで、スルーして先に進もうかなとも思ったのですが、結局気になって調べることにしました。
検索をかけて、最初に見つかったのは
Apacheのアクセス制御をちゃんと理解する。
で、Allow
ディレクティブやOrder
ディレクティブ等の使い方についてとても細かく書かれていました。
ついでに将来来るであろうApache3.0についてもおまけで書いてあり、その時はDSLとやらが使えるようになるみたいだよということも書かれていました。
# DSLについてはよく調べてないのでわかりませんが、スクリプト言語みたいなのが使えるみたいですね
Allow
ディレクティブたちについては大体わかったんだけど、結局うまくアクセスできなかった理由がよくわかりません。
次に、Upgrading to 2.4 from 2.2というページを見つけました。その中に、Run-Time Configuration Changesと言う項目があって、まぁ、英語なんですけど何とか読んでみると、
「後方互換性のためにmod_access_compat
って言うモジュールで残すけど、今後はmod_authz_host
モジュールを使ってよ」
というようなことが書いてあって、Allow
ディレクティブなどの代わりに拡張されたRequire
ディレクティブを使って記述する例が書かれていました。httpd.conf
を見るとmod_access_compat
モジュールはちゃんとロードされていたので、非推奨であることは確かですが、アクセスできなかった理由にはならなさそうです。
…?(・ω・ )
あ(・_・)
混在させてるのがまずいんじゃね?
ということで、ルートディレクトリをOrder
ディレクティブとAllow
ディレクティブで書き直し、エイリアス側もAllow
ディレクティブで書いてみました。おお、アクセス成功(・_・)ノ
若干腑に落ちないところもありますが、旧式の書き方でもアクセスできました。このへんまだまだ奥が深そうです。まぁ、非推奨になってることには変わりないので、Require
ディレクティブで進めてみようと思います。