.htaccess - кэширует файлы с URL-адреса, например / files / large / 6 - PullRequest
0 голосов
/ 09 ноября 2011

У нас есть мультисайтовая CMS, которая обрабатывает изображения и другие файлы, подобные этой.

Как мы можем кэшировать изображения и другие файлы, которые находятся в www. (Или не www.) Variable-domain.com/files/* с помощью .htaccess?

Это вызывает ошибку 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>

Мне бы тоже нужно было включить все подкаталоги ...

Спасибо за помощь!

Ответы [ 3 ]

2 голосов
/ 09 ноября 2011

Используйте 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 голос
/ 10 ноября 2011

<Directory> не разрешено в htaccess.

Просто создайте новый файл .htaccess с данными expires и поместите его в каталог «uploads». Это будет иметь тот же эффект, что вы пытаетесь достичь

0 голосов
/ 10 ноября 2011

Поскольку он не имеет расширения, ничего из этого не сработало.В конце я изменяю код, и теперь он отлично работает, используя имя файла вместо идентификатора изображения в качестве последнего параметра URI.

...