Принудительная страница для перезагрузки с сервера вместо загрузки кешированной версии

У меня есть веб-страница A. Пользователь нажимает на форму для отправки данных и берет его на веб-страницу B. Когда он нажимает кнопку «Назад», мне нужна веб-страница A, которая будет обновляться с сервера, а не загружена из кеша. У меня есть это: <meta http-equiv="expires" content="0"> но он, похоже, не работает. Я также попытался установить переменную на странице B (переменная сеанса через php), а затем проверить ее на странице A и обновить (или нет) в соответствии с ее существованием. Это, похоже, тоже работает. Основной код для этого: Страница A:

 <?php if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); echo' <script> window.location.replace("/****/****/*****.php"); </script> '; } ?> с <?php if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); echo' <script> window.location.replace("/****/****/*****.php"); </script> '; } ?> 

И на странице B:

 $_SESSION['reloadPage'] = 1; 

С помощью PHP-решения он просто пытается обновить страницу в бесконечном цикле. Что-то в моей логике отсутствует? Правильно ли это?

РЕДАКТИРОВАТЬ При дальнейшем расследовании, когда вы указываете браузеру не кэшировать страницу, делает ли это также полное обновление на стороне сервера ? Это то что мне нужно. Полное обновление на стороне сервера.

ОК попробуйте это вместо этого:

 <?php if(!session_id()) { @session_start(); } header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); header('Last-Modified: ' . gmdate( 'D, d MYH:i:s') . ' GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Pragma: no-cache'); if(isset($_SESSION['form_submitted'])) { unset($_SESSION['form_submitted']); header('Location: ?' . uniqid()); #header('Refresh: 0'); } ?> с <?php if(!session_id()) { @session_start(); } header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); header('Last-Modified: ' . gmdate( 'D, d MYH:i:s') . ' GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Pragma: no-cache'); if(isset($_SESSION['form_submitted'])) { unset($_SESSION['form_submitted']); header('Location: ?' . uniqid()); #header('Refresh: 0'); } ?> 

Вам нужно будет установить $ _SESSION ['form_submitted'] = true на стр. 2.

Попробуйте со всеми тремя:

 <meta http-equiv="cache-control" content="no-cache"> <!-- tells browser not to cache --> <meta http-equiv="expires" content="0"> <!-- says that the cache expires 'now' --> <meta http-equiv="pragma" content="no-cache"> <!-- says not to use cached stuff, if there is any --> 
 <?php session_start(); if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); //no outputting code above header header("Cache-Control: no-cache, must-revalidate"); header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); header("Location: http://www.mypage.com/"); } ?> с <?php session_start(); if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); //no outputting code above header header("Cache-Control: no-cache, must-revalidate"); header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); header("Location: http://www.mypage.com/"); } ?> 

Я знаю, что это старый вопрос и уже есть ответ (который не освежает сервер). Поэтому я хотел бы поделиться решением с помощью jQuery.

 $('#back-button').click(function(){ setTimeout(location.reload(true), 1000); }); 

Объяснение:
Когда вы нажмете кнопку «Назад», setTimeout будет запускаться через 1 секунду (1000 миллисекунд). Затем страница будет перезагружаться с сервера, так как параметр внутри reload является true .

Если вы reload в reload он перезагрузится с сервера, а если вы поместите false он перезагрузится из кеша. Источник w3schools .

Ваш JavaScript должен быть …

 window.location = "/****/****/*****.php" 

Я думаю, что это должно исправить ваш цикл.

 <?php session_start(); if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); echo' <script> window.location.replace("/****/****/*****.php"); </script> '; } ?> с <?php session_start(); if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); echo' <script> window.location.replace("/****/****/*****.php"); </script> '; } ?>