【问题标题】:What is wrong with this .htaccess?这个 .htaccess 有什么问题?
【发布时间】:2012-11-12 13:56:27
【问题描述】:

这个 .htaccess 是由 crontab 生成的;顺便说一句,我想指定访问 + 1 周。但我拥有的 .htaccess 是:

<FilesMatch "(./|\.(html|js))$">
Header set Cache-Control "max-age=604800, public"
Header set Expires "Sat, 01 Dec 2012 02:34:43 UTC"
</FilesMatch>
<FilesMatch "(\.css)$">
Header set Cache-Control "max-age=2592000, public"
Header set Expires "Mon, 24 Dec 2012 02:34:43 UTC"
</FilesMatch>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=31536000, public"
Header set Expires "Sun, 24 Nov 2013 02:34:43 UTC"
</FilesMatch>

文件是/home/jonathan/.htaccess,Apache2错误日志指出:

[2012 年 11 月 24 日星期六 14:03:46] [alert] [client 66.249.75.28] /home/jonathan/.htaccess: 无效的命令 'Header',可能拼写错误或由服务器配置中未包含的模块定义
[2012 年 11 月 24 日星期六 14:03:46] [警报] [客户端 66.249.75.28] /home/jonathan/.htaccess: 无效的命令“标题”,可能拼写错误或由服务器配置中未包含的模块定义

如何更改此 .htaccess 以便理想情况下它是静态的,为不同的扩展指定一周或一个月或其他任何时间,并且无论如何设置它不会产生服务器错误 (500) wen 有人试图使用它?关于 Header 的抱怨看起来像是二次伤害;这发生在我迁移到 H5BP 时。

【问题讨论】:

  • 您的 Apache 服务器上似乎没有包含 mod_headers。
  • @SubRed +1;谢谢。当我更改静态 HTML 文档时,为什么这会开始出现问题,我仍然在摸不着头脑。有问题的网站是JonathansCorner.com - 可能有一些不错的写作,但前端方面几乎没有突破可能的极限。

标签: .htaccess apache2 html5boilerplate server-error


【解决方案1】:

您可以尝试使用 Expires 指令而不是 Headers,如下所示:

ExpiresActive on
ExpiresByType text/html "access plus 1 week"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType text/css "access plus 1 week"
ExpiresByType image/gif "access plus 1 week"
ExpiresByType image/jpg "access plus 1 week"
ExpiresByType image/png "access plus 1 week"
...
...

PS:这需要您在httpd.conf 中启用mod_expires

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 2021-08-20
    • 2015-09-23
    相关资源
    最近更新 更多