先日、エイリアスの設定方法で、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ディレクティブで進めてみようと思います。