我们有一个多站点CMS来处理图像和其他类似文件..
我们如何使用.htaccess缓存www。(或非www。)variable-domain.com/files/*中的图像和其他文件?
这导致500错误。我删除了一些..这里是我目前的工作原理(减去目录和内容部分 - 当包含这些内容时它会抛出错误。)
#
# Force Browser Cache
#
<ifmodule mod_expires.c>
ExpiresActive On
<filesmatch "\.(jpg|gif|png|css|js)$">
ExpiresDefault "access plus 1 year"
</filesmatch>
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
<FilesMatch ".(js|css|pdf|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
<Directory "/home/aiwebsystems/public_html/uploads">
<FilesMatch "\.(gif|jpg|png|js|css)$">
ExpiresDefault "access plus 1 year"
</FilesMatch>
</Directory>
</ifmodule>
我还需要包含所有子目录......
感谢您的帮助!
答案 0 :(得分:2)
使用Apache的 mod_expires
例如在.htaccess中:
ExpiresActive On
<Directory "/path/to/public_html/files">
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
ExpiresDefault A300
<FilesMatch "\.html$">
Expires A86400
</FilesMatch>
<FilesMatch "\.(gif|jpg|png|js|css)$">
Expires A2592000
</FilesMatch>
</Directory>
A300意味着用户缓存副本在访问后300秒到期。 (A86400是访问后的第二天,A2592000是访问后的一个月)
如果您的意思是服务器端缓存,那么您很幸运,因为操作系统最近使用“分页”算法进行缓存:http://en.wikipedia.org/wiki/Paging
答案 1 :(得分:1)
<Directory>
。
只需使用过期内容创建一个新的.htaccess文件,并将其放在“uploads”目录中。这将与您尝试实现相同的效果
答案 2 :(得分:0)
因为它没有扩展,所以没有一个工作。我最后更改了代码,现在它运行得很好,使用文件名而不是图像ID作为最后一个URI参数。