如何让 Apache2 解析(无错误).htaccess 中的 Header 指令?

Chr*_*ard 40 .htaccess http-headers apache-2.2

我正在加载带有 500 内部服务器错误的页面,因为我相信 Apache 尚未配置为允许的指令。

我将 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>
Run Code Online (Sandbox Code Playgroud)

/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
Run Code Online (Sandbox Code Playgroud)

我需要指定什么才能让 Apache2 正确处理“Header”指令?

小智 76

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

  • 这个答案应该被接受 (3认同)
  • 确实,这个答案是最好的,但是我敢说,一些现代 GNU/Linux 发行版(如最新的 Debian)基于“systemd”,并且在管理服务方面有不同的语法。重启 Apache:`sudo systemctl restart apache2.service`。但是,截至目前存在回退功能,因此旧的“sudo service”命令确实有效。但它可能会在不久的将来停止工作。 (2认同)

Jay*_*Jay 15

您需要添加如下一行:

LoadModule headers_module modules/mod_headers.so
Run Code Online (Sandbox Code Playgroud)

给你httpd.conf添加支持。在 Ubuntu 和类似版本中,您可以这样做a2enmod headers,它会在您的配置中自动启用它。