Работа InternetExplorer с elFinder через https://

Added by Сергей Б over 1 year ago

:) Не сочтите меня назойливым но может кто то делал нечто подобное:
в настройках elFinder из недефолтного только:

'fileURL' => false,

У меня elFinder работает через https , все доступные мне браузеры работают с ним замечательно (FireFox, Safari, Google Chrome) но так как клиенты все еще пользуются InternetExplorer'ом то стал я тестировать эту гадость. При попытке скачать файлы я получаю ошибку:
"Не удалось открыть этот узел Интернета. Узел недоступен или не найден."
Проблема известная и широко описана в интернете:
Проблема в том что для скачивания IE чего либо по протоколу https необходимо чтоб было разрешено кеширование а у меня на сайте стояло no-cache no-store ...

Начинаю пробовать решить данную проблему:
Добавляю мета теги

<META http-equiv="Cache-Control" content="no-cache, no-store, max-age=0, must-revalidate"/>
<META http-equiv="Pragma" content="no-cache"/>
<META http-equiv="Expires" content="Fri, 01 Jan 1990 00:00:00 GMT"/>

FireBug показывает:
Cache-Control    no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires    Thu, 19 Nov 1981 08:52:00 GMT
Pragma    no-cache

Добавляю в .htaccess
<IfModule mod_headers.c> 
Header append Cache-Control "private" 
</IfModule> 
<IfModule mod_expires.c> 
ExpiresActive On 
ExpiresDefault "access plus 1 hours" 
</IfModule>

В FireBug без изменений...
Добавляю в index.php
session_cache_limiter('private');
header("Cache-Control: private"); 
header("Expires: " . date("r", time() + 10800)); 
header("Pragma: private");

FireBug показывает что кеширование разрешено:
Cache-Control    private, post-check=10800, pre-check=10800
Pragma    private

Думаю "..ну наконец то .." а не тут то было IE даже при этом выдает ошибку при скачивании,
(при каждом изменении чего либо я делал рестарт Apache для чистоты эксперимента)
Лезу в php.ini и правлю
session.cache_limiter = private

Очередной рестарт Apache , FireBug ничего нового не показал:
Cache-Control    private, post-check=10800, pre-check=10800
Pragma    private

но только при этом IE стал скачивать файлы :) думаю ну вот оно наконец то :) но очередной раз меня ждала подстава от MicroSoft:
из за жесткого кеширования страниц я периодически и очень часто получаю "Некорректный ответ сервера" :) причем на всех браузерах (типа сам работать не буду и другим не дам) :)
Кеширование я конечно же отключил но может у кого то есть свежие идеи как его победить :) (в смысле IE)

Вариант:
InternetExplorer нужно выкинуть, удалить + сразу сделать дефрагментацию, добавить в базу данных антивирусных программ с пометкой не лечить+сразу удалять, и прочие в принципе рассматриваются НО вспомним великие слова "...Ребята, давайте жить дружно..." :)


Replies (3)

RE: Работа InternetExplorer с elFinder через https:// - Added by Troex Nevelin over 1 year ago

При fileURL => false по идеи есть возможность управлять заголовками и можно на крайняк ставить +1 сек к expire.

Что касается борьбы с кеширование тоже есть вариант можно использовать в качестве asset tag использовать timestamp ко всем URL. То есть в конце каждого обращаения к коннектору будет в url добавляться &ts=1296199134

RE: Работа InternetExplorer с elFinder через https:// - Added by Сергей Б over 1 year ago

Спасибо, буду пробовать.

RE: Работа InternetExplorer с elFinder через https:// - Added by Сергей Б over 1 year ago

Забавное решение получилось:

Учитывая то что у меня IE не реагировал на

session_cache_limiter('private');
header("Cache-Control: private"); 
header("Expires: " . date("r", time() + 10800)); 
header("Pragma: private");

и на то что FireBug показывает что кеширование разрешено:
Cache-Control    private, post-check=10800, pre-check=10800
Pragma    private

а реагировал на то что в php.ini установлено
session.cache_limiter = private

Я сделал следующее:
на всю страницу установил запрет кеширования

session_cache_limiter('nocache');
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Expires: " . date("r")); 
header("Pragma: no-cache");

а в php.ini сделал
session.cache_limiter = private
session.cache_expire = 1

при таких настройках FireBug показывает заголовок
Cache-Control    no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires    Thu, 19 Nov 1981 08:52:00 GMT
Pragma    no-cache

При таком заголовке все браузеры работают нормально, а изменения в php.ini разрешили и IE тоже нормально все скачивать.

Так вот чего то я не пойму где тут собака зарыта :) и почему IE не реагирует на заголовки и как это связано с php.ini

(1-3/3)