Htaccess 指令不会应用于所有文件



我在Joomla的根访问文件中添加了.htaccess指令。现在它按预期工作,除了某些文件夹中的文件。我检查了未应用该文件的文件的文件夹,但没有其他.htaccess文件可以覆盖根目录中的默认.htaccess。未应用的文件示例是 js 和 css 文件。

  1. 这些文件来自不是来自第三方服务器的同一来源。
  2. 这些文件不包含任何查询字符串。

我使用的指令是这样的:

ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"

我还可以检查什么以找出什么,什么可能覆盖上面的指令。

如果不遵循这些 ExpiresByType,这意味着这些文件不由 Apache 提供,或者某处有另一个覆盖。

一些 joomla 插件可能会动态地提供 css 和 js(以添加压缩或过期),所以这是你应该首先注意的地方。一些Web服务器在Apache之前使用nginx代理,css/js文件由nginx而不是Apache提供。所以看看你的 apache 日志文件,是 Apache 为你提供了这些文件。还要再次查看您的虚拟主机配置。在同一服务器上的其他站点上没有问题并不意味着覆盖不在虚拟主机配置上。

停用PHP,重新启动服务器,加载这些css/js文件,看看是否有任何更改。(这是为了测试这些文件是否由任何PHP脚本处理)尝试加载一些不存在的css文件并分析您的访问日志。关闭Apache并加载css文件(这是为了检查您是否有nginx代理或类似的东西)。

最新更新