0

我们有一个多站点 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>

我也需要包含这个的所有子目录......

谢谢您的帮助!

4

3 回答 3

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

于 2011-11-08T20:30:22.570 回答
1

<Directory>在 htaccess 中是不允许的。

只需创建一个带有过期内容的新 .htaccess 文件,并将其放在“上传”目录中。这将具有您尝试实现的相同效果

于 2011-11-10T17:48:12.163 回答
0

由于它没有扩展名,因此这些都不起作用。我最后更改了代码,现在它工作得很好,使用文件名而不是图像 ID 作为最后一个 URI 参数。

于 2011-11-10T16:52:49.443 回答