Apache2で.htaccessのヘッダーディレクティブを(エラーなしで)解析するにはどうすればよいですか?


35

Apacheが許可するように設定されていないというディレクティブが原因で、500内部サーバーエラーでページが読み込まれています。

AllowOverrideをallに設定し、次のような.htaccessファイルを設定しました。

<FilesMatch "\.(eot|ico|pdf|flv|jpg|jpeg|png|gif|svg|swf|ttf|woff)$">
Header set Cache-Control "max-age=31536000, public"
Header set Expires "Wed, 23 Apr 2014 17:00:01 UTC"
</FilesMatch>

/var/log/apache2/error.logの内容は次のとおりです。

[Sat Jul 20 15:12:36 2013] [alert] [client 24.15.83.241] /home/jonathan/.htaccess: Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration

Apache2が「Header」ディレクティブを適切に処理するために、何を指定する必要がありますか?

回答:


65

apache2のでは、単に実行しa2enmod headers、その後sudo service apache2 restart、それはヘッダが自動的にモジュールがインストールされます。


2
この答えを受け入れる必要があります
Himanshu Mishra

1
確かに、この答えは最高ですが、最新のGNU / Linuxディストリビューション(最新のDebianなど)のいくつかsystemdは、サービスの管理に基づいており、異なる構文を持っています。Apacheを再起動しますsudo systemctl restart apache2.service。ただし、現時点ではフォールバック関数が存在するため、古いsudo serviceコマンドは機能します。しかし、近い将来に機能しなくなる可能性があります。
TranslucentCloud

a2enmodである/usr/sbin私のシステムで。これは私の非sudoerユーザーのPATHにはないので、rootでない限りa2enmodは発見できません。TL; DR:のsudo a2enmod代わりに実行しa2enmodます。
マイケルホフマン

14

次のような行を追加する必要があります。

LoadModule headers_module modules/mod_headers.so

そのためのhttpd.confサポートを追加するには。Ubuntuなどでは、あなたはそれを行うことができa2enmod headers、あなたの設定でそれを自動的に有効にします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.