Как закешировать картинки без расширения ?

S1
На сайте с 02.10.2016
Offline
138
1324

Сайт на движке форума Xenforo

Во вложениях картинки у него отображаются специальным обработчиком

Для вывода картинки получается вот такая конструкция:

[IМG]https://site.ru/forum/attachments/26727/[/IМG]

Не получается включить для них кеширование в браузере клиента.

Пробовал такие варианты в htaccess:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
</IfModule>

и такой:

<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|pdf|js|xml|json|css|gz|less|woff2|png)$">
Header set Cache-Control "public, max-age=18000000"
Header set Expires "Sun, 26 Jul 2020 09:09:14 GMT"
</FilesMatch>

Не кеширует.

Возможно ли вообще ?

Постоянно обмениваюсь ссылками с качественными сайтами по теме электроника, электронные компоненты, и тд.
SocFishing
На сайте с 26.09.2013
Offline
118
#1

в консоли смотрите прописывается ли заголовок?

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">

Header set Cache-Control "max-age=2592000"

</FilesMatch>

★Сервис идентифицирует (https://socfishing.com/?utm_source=searchengines) посетителей вашего сайта и предоставляет их профили ВКонтакте, Телефон, Почта! Цены копеечные, работаем 8 лет.
S1
На сайте с 02.10.2016
Offline
138
#2
SocFishing:
в консоли смотрите прописывается ли заголовок?

В том-то и дело что не прописывается.

Вот какие заголовки отправляются на вложения картинок

jpg 1.jpg
HM
На сайте с 14.01.2012
Offline
249
#3

Пишешь правила в htaccess, а отдает пикчи nginx.

S1
На сайте с 02.10.2016
Offline
138
#4

Подозреваю что поможет только правка скриптов движка.

Или можно все-таки как-то попробовать через htacces ?

SocFishing
На сайте с 26.09.2013
Offline
118
#5

sanek1991, у вас nginx, а не apache. Директивы htaccess поддерживаются только apache.

В данном случае, если у вас VPS, то менять конфиг nginx.

server {

listen 80;

server_name mysite.com;

...

# Задаем правила обработки статического контента (типов файлов можно поставить и больше)

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {

root /path/to/document/root/; # Путь к корню вашего сайта

access_log off; # не пишем логи

expires 3d; # кешируем у клиента на 3 дня

}

}

S1
На сайте с 02.10.2016
Offline
138
#6
SocFishing:
sanek1991, у вас nginx, а не apache. Директивы htaccess поддерживаются только apache.

Это понятно, но если картинку вставлять не через обработчик движка, то кеширование есть

То есть например не так:

[IМG]https://site.ru/forum/attachments/26727/[/IМG]

а так:

[IМG]https://site.ru/forum/images/26727.png[/IМG]

Причем значение max-age берет из установок htaccess

jpg 1.jpg
S1
На сайте с 02.10.2016
Offline
138
#7

Пробовал через LocationMatch, вываливает ошибку 500

<LocationMatch "^/attachments/">

Header set Cache-Control "max-age=604800, public"

</LocationMatch>

SocFishing
На сайте с 26.09.2013
Offline
118
#8

sanek1991, вы уверены что через htaссess берет, может на PHP прописан header("Cache-Control: max-age=604800");

Кстати, у вас может быть связка nginx + apache (как бекенд) в таком случае картинки идут в загрузку через nginx, а PHP идёт через apache. Скорее всего так и есть.

Это хостинг или VPS?

Если хостинг, то вред ли получится, вариант выставить в head метатег

<meta http-equiv="Cache-Control" content="max-age=604800, must-revalidate" />

и забить.

S
На сайте с 30.09.2016
Offline
469
#9

Какие нахрен энджинксы и апачи... Сервер вообще не видит никакого файла, поэтому и бесполезно прописывать какие-то серверные директивы.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
IL
На сайте с 20.04.2007
Offline
435
#10
Sitealert:
Сервер вообще не видит никакого файла, поэтому и бесполезно прописывать какие-то серверные директивы.

Отчего же? По location-у "грепнутому" вполне себе применятся, даже если файлика нет, а бэкенд отдаёт 200.

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий