Ответ 1
Мне кажется, что проблема с браузером больше, чем проблема с сервером.
-
Вы пытались настроить кеширование заголовков, чтобы запретить кеширование зарегистрированных страниц?
-
В качестве другого решения я нашел сообщение SO в отношении: Предотвращение кэширования на задней панели в Safari 5.
Вы можете попробовать это решение, которое в основном помещает этот javascript на ваши зарегистрированные страницы:
window.onpageshow = function(event) {
if (event.persisted) {
window.location.reload() ;
}
};
Чтобы перезагрузить страницу после выхода из системы, вы можете проверить, нет ли файла cookie, так что кнопка "Назад" все еще работает при входе в систему, например. Просто измените строку "yourCookieName"
на ваше имя cookie сеанса.
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
}
return null;
}
function hasCookie(cname) {
return getCookie(cname) !== null;
}
window.onpageshow = function(event) {
if (event.persisted && !hasCookie("yourCookieName")) {
window.location.reload(); // or redirect to login page
}
};
Примечание. Я думаю, что кеш-память будет по-прежнему существовать в Safari с решением 2. Таким образом, на мой взгляд это не очень эффективное решение, обеспечивающее правильную безопасность.