• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ApacheのAllowOverrideの設定について)

ApacheのAllowOverrideの設定について

このQ&Aのポイント
  • ApacheのAllowOverrideの設定について調べています。
  • htdocsにAllowOverrideの設定を行おうとしていますが、どちらを設定すればよいのか迷っています。
  • また、二つの設定の違いについても詳しく教えていただけませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.3

> ちなみに、"AllowOverride"の設定は、 > "UserDir"の所にもありますが、これは、 > (1)は例と同じ、(2)は"UserDir"内の > "AllowOverride"の設定と置き換えた場合、 > 例の(1)、(2)と(a)、(b)、(c)は > 同じ関係になるんでしょうか? 今回は(1)がホスト全体の設定で、(2)がUserDirの設定になるんだね。ええと・・・・。前回の回答中の(a)、(b)、(c)との関連はちょっと説明しづらいな。でもまぁ、恐らく同じと考えて良いだろう。君の中でだいぶイメージができあがりつつあるのではないかと思う。 > またその場合、(1)でどう設定しても、個別で > "htdocs"と"UserDir"の方の"AllowOverride" > を設定すれば、個別で設定した方が > "htdocs"や"UserDir"の方では設定が有効になるという > 事でしょうか? いえ~すざっつらいと。このへんはCSSに良く似ている。より局所的な設定が大局的な設定を上書きするという形だな。

sabada
質問者

お礼

anmochiさん、ありがとうございました。 具体的な例なども交えて教えていただいたので、 大変わかり易く理解する事が出来ました。

その他の回答 (2)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

> "htdocs"だけに設定を反映。 「だけ」というのはちょっと語弊があるかな。「"htdocs"以下」となるね。例えば、以下のようなディレクトリ構成を考えてみましょー。 /usr/local/apache/htdocs ←(a) /usr/local/apache/htdocs/contents1 ←(b) /usr/share/contents2 ←(c) ここで、<Directory />内での設定を(1)、<Directory local/apache/htdcos>内での設定を(2)とする。さらに、DocumentRootは/usr/local/apache/htdocsであり、Alias /contents2 /usr/share/contents2という設定がされている(←ここが重要)とする。 HTTPクライアントから見たディレクトリ構成は / ←(a') /contents1 ←(b') /contents2 ←(c') となるね。ここまでは良いかな? c'が分からない場合は、Apacheの「alias」コマンドを参照してくれい。 ・(1)、(2)に両方設定した場合: (c)は(1)の設定が、(a)、(b)は(2)の設定が反映される。 ・(1)だけに設定した場合: (a)、(b)、(c)全てに(1)の設定が反映される。 ・(2)だけに設定した場合: (a)、(b)に(2)の設定が反映される。 ちょっとごちゃごちゃ書きすぎたかも。ゆっくり読み返していただきたい。 > という事は、どちらかだけ設定すればよいという事ですか? そうやね。今後ディレクトリ構成をあれこれいじる気は無いのであれば、どちらかに設定しておけばよい。どちらかと言えば、(2)に設定する方が私のポリシーとしてはお勧めだ。

sabada
質問者

補足

anmochiさん、とてもわかり易く勉強になります。 ちなみに、"AllowOverride"の設定は、 "UserDir"の所にもありますが、これは、 anmochiさんの例えで言いますと、 (1)は例と同じ、(2)は"UserDir"内の"AllowOverride"の設定と置き換えた場合、例の(1)、(2)と(a)、(b)、(c)は同じ関係になるんでしょうか? またその場合、(1)でどう設定しても、個別で"htdocs"と"UserDir"の方の"AllowOverride" を設定すれば、個別で設定した方が "htdocs"や"UserDir"の方では設定が有効になるという事でしょうか?

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

いやいやいや! ちょっと待ってくれ。 君が書いている2個目のAllowOverrideの前後に 前:<Directory ほにゃほにゃ> 後:</Directory> というのが必ずあるはずだ。探すべし。「ほにゃほにゃ」の部分は/home/httpd/htmlや/var/www/htmlなどになっているはずだ。DocumentRootオプションで設定されている値だ。 <Directory />の中の奴は「サーバ全体の初期値」を設定する。 <Directory ほにゃほにゃ>の中は「ドキュメントルート以下」を意味する。 最初はこの違いは見えにくいと思う。これらの違いは、仮想ディレクトリやユーザーディレクトリを利用する際にはっきりするだろう。 で、htdocsに対して設定を行いたい場合は、君の質問中にある下の方を設定してくれれば良い。

sabada
質問者

補足

anmochiさんレスありがとうございます。 すいません、ご指摘どおり、 前:<Directory local/apache/htdocs> 後:</Directory> というのを見逃してました。 前述の -------------------------------------------------- <Directory /> Options FollowSymLinks AllowOverride None </Directory> の方は、サーバ全体に設定を反映。 -------------------------------------------------- 後述の -------------------------------------------------- <Directory local/apache/htdocs> # This controls which options the .htaccess files in directories can # override. Can also be "All", or any combination of "Options", "FileInfo", # "AuthConfig", and "Limit" # AllowOverride None </Directory> の方は、"htdocs"だけに設定を反映。 -------------------------------------------------- と考えて良いんですね? という事は、どちらかだけ設定すればよいという事ですか?

関連するQ&A