我在Joomla的根访问文件中添加了.htaccess
指令。
现在它按预期工作,除了某些文件夹中的文件。
我检查了文件夹中没有应用它的文件,但是没有其他.htaccess
文件可以覆盖根目录中的默认.htaccess
。
它没有应用的文件示例是js和css文件。
我使用的指令是这样的:
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"
我还可以查看哪些内容,可能会覆盖上述指令。
答案 0 :(得分:0)
如果不遵守这些ExpiresByType,那意味着Apache不提供这些文件,或者某处有另一个覆盖。
一些joomla插件可以动态地为css和js提供服务(以增加压缩或过期),因此这是你应该首先注意的地方。 一些Web服务器在Apache之前使用nginx代理,而css / js文件由nginx而不是Apache提供。所以看看你的apache日志文件,它是为你提供这些文件的Apache。 再看一下您的虚拟主机配置。在同一服务器上的其他站点上没有问题并不意味着覆盖不在您的vhost配置上。
停用PHP,重新启动服务器,加载这些css / js文件,看看是否有任何变化。 (这是测试这些文件是否由任何PHP脚本处理) 尝试加载一些不存在的css文件并分析您的访问日志。 关闭Apache并加载css文件(这是为了检查你是否有nginx代理或类似的东西)。