如何获取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”指令?

Answers:


64

使用apache2,只需运行a2enmod headers,然后sudo service apache2 restart它将自动安装标头模块。


2
这个答案应该被接受
Himanshu Mishra 2015年

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
Michael Hoffmann

14

您需要添加如下一行:

LoadModule headers_module modules/mod_headers.so

给您httpd.conf增加支持。在Ubuntu和类似版本中,您可以执行此操作a2enmod headers,它将在您的配置中自动启用它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.