【apache】AllowOverrideとは

apacheの設定ファイルの「httpd.conf」を見ると、こんな記述がありますよね

<Directory "/var/www">
AllowOverride All
Require all granted
</Directory>

<Directory "/var/www/html">
AllowOverride All
Options Indexes FollowSymLinks
Require all granted
</Directory>

この「AllowOverride」というのはなんだろう、と思ったので調べてみました。

AllowOverrideは、「.htaccess」を有効化するか無効にするかの設定です。

「.htaccess」というのは、ディレクトリごとにapacheの設定を上書きできる仕組みです。

自分でサーバーを建てた時は、デフォルトではAllowOverride Noneになっているので、いくらhtaccessを設定しても効きません。

なので、AllowOverride Allに変更して、htaccessを有効化する必要があります。

例えば、htaccessでリダイレクト設定をしたい場合、AllowOverride Noneのままだと効かないので、Allに変更する必要があります。

<Directory "/var/www/html">
AllowOverride None
</Directory>

↑こうなっているとhtaccessは無効です。

<Directory "/var/www/html">
AllowOverride All
</Directory>

↑こうするとhtaccessが有効になります。

まとめると、AllowOverrideはhtaccessを有効化するかどうかの設定で、Allにするとhtaccessが有効になり、
Noneにすると無効になります、という話でした。

コメント