08/23(火) あぱちのに
Apacheでアクセス制限が掛けられない件がようやく解決。
仮想ディレクトリの直下はアクセス制限できるのに、public_htmlではできないのは、やはりというかなんというか実ディレクトリの構造の違いによっていたのであった。
httpd.confの<Directory>ディレクティブに"AllowOverride AuthConfig"と書いてやればいいんだが、仮想ディレクトリ直下は
<Direcotry /usr/local/apache2/htdocs>
AllowOverride AuthConfig
</Directory>
としてやればいいのに、各ユーザディレクトリの場合は
<Directory /home/*/public_html>
AllowOverride AuthConfig
</Directory>
ではダメで、
<Directory />
AllowOverride AuthConfig
</Directory>
としてやらなければいけないということなのだった。
仮想ディレクトリ上で見える親ディレクトリと実ディレクトリとの対応は、
http://foo.com/example.html → /usr/local/apache2/htdocs/
http://foo.com/~bar/example.html → /home/bar/public_html/
ではないという事だね。・・・もしかしたら親ディレクトリという考え方自体が間違ってるのかも?
しっかし、「AllowOverride」を指定するDirectoryディレクティブって上のような関係にあると思うぢゃん・・・思わないかなぁ。あぱちのページ見てもそういう風に読めるんだけどなぁ・・・。でも、検索してもここでハマッてる人はいなさそう・・・てこた、私のせいか。
まぁ、さんざん苦労したおかげで、httpd.confが「宇宙語状態」から「調べ方がわかる」レベルで理解できるようになったから、まあ・・・いいか。
| 固定リンク | 0
この記事へのコメントは終了しました。
コメント