- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:apacheで<Directory>が機能しません)
apacheで<Directory>が機能しない理由とは?
このQ&Aのポイント
- apache2.2で複数ドメインを使用する際、<Directory>や<Files>で指定した設定が無視される問題が発生しています。
- LocationやLocationMatchでは問題なく機能するため、.htaccessの設定やモジュールの読み込みに問題はありません。
- 原因は不明ですが、詳しい方のアドバイスを求めています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
<Location> だけが有効になるということは、 ファイルの後ろの方や、バーチャルホスト内に 相反する内容(アクセスを許可する内容)の別の記述が あるではないかと推測します。 例えば、次のような記述がありませんか。 <Location /> Order deny,allow Allow from all </Location> なお、<Directory> や <Files> よりも <Location> が優先されます。 バーチャルホスト内の指定は、あとから上書き適用されます。 詳細な適用順序のルールは以下リンク先をご覧になって下さい。 http://httpd.apache.org/docs/2.2/en/sections.html#mergin http://httpd.apache.org/docs/2.2/ja/sections.html#mergin (翻訳版) リンク先ページの末尾に掲載されている例のように 別の <Location> 等が記述されていないか確認してみて下さい。 Include で読み込まれる別ファイル内の設定にもご注意下さい。
お礼
ありがとうございました。おかげさまで2日間悩んでいたことが解決いたしました。 しばらく前にどこかのページで見つけた、指定したIPなどを拒否するための下記の内容が記述されていました。下記内容を修正したら問題なく動作するようになりました。 <Location /> Deny from env=deny_user </Location> ・・・上記はdeny_user指定したユーザー以外には無関係だと思っていました・・・それ以外はAllowになってしまっていたという事でしょうか!?・・・そしてLocation が最優先される事を知りませんでした。よい勉強になりました。 ありがとうございました。