Доброго времени странник, здесь вам расскажу о такой, порой не приятной штуке, как — кэш редиректов в браузерах «Google Chrome» и «Mozilla FireFox«.

Дабы я не тратил ваше время, а вы понимали о чем идет речь, пару слов о проблеме.

Редиректы (пере направления) кэшируются браузером

Вот к примеру, зашли вы на страничку в всемирной паутине или к себе на сервер, поправочка, попытали зайти на страницу сети, а вас сразу же перенаправило на другую страницу или даже сайт, для наглядности, сайт вымышлен, пробуем войти на сайт site.com, а он перенаправил вас на site.com/ru. Или же в случаи не верного прописанного редиректа вас перебросило на другой ресурс и теперь после правки редиректа по прежнему попадаете на старые грабли..

Такое вот перенаправление, иными словами — редирект, Chrome кэширует — этот процесс был предусмотрен разработчиками для ускорения загрузки веб-страницы. И все вроде бы замечательно, но случается иногда и такое, что данное поведение может стать головной болью, особенно во время разработки сайтов. Потому, как очистить такой кэш не так уж просто, обычная очистка кэша не включает в себя очистку кэша перенаправлений.

Как происходит запоминание браузером редиректа

Когда сайт отвечает редиректом в заголовке: HTTP Status Code Redirect

Сервер сайта, в силу особенностей его работы, скажем переехал или технический сбой, на момент попытки войти на него, в нашем случаи site.com, может дать ответные инструкцию браузеру перейти на другую страницу.

HTTP/1.1 301 Moved Permanently 
Location: http://www.site.org/ru

Более подробнее вы можете прочитать на вики HTTP 301. После первого такого визита и получения инструкций, к примеру браузер Chrome, запоминает перенаправление и при последующих попытках посещения сайта, он автоматически перекинет вас на новый адрес, без посещения сервера. Но вот беда, когда сервер сайта уже исправен и не посылает браузеру инструкций перейти на другую страницу, браузер из за сообственного кэша ничего об этом не знает и продолжает перенаправлять вас на другую страницу…

А еще бывает на странице установлен мета тег: Meta Refresh Redirect

В такой ситуации сервер не просит браузер делать редирект и отвечает как обычно — страница успешно загружена, в частности это код 200. Но в самой странице, в ее коде содержится специальный тег перенаправления, к примеру:

<META HTTP-EQUIV="refresh" CONTENT="0;URL=/sbros_hesha_htaccesss/ru">

 

Я сам в свое время был более глупым чем сейчас :) И не знал, как с этим бороться, некое энное время ушло на поиск нужной информации, но я ее таки нашел :D И охотно делюсь с вами.

На момент публикации, а это 15.05.2018, способы рабочие, как будет дела обстоять в следующих обновлениях мне не известно.

Отключаем кэш редиректов в Google Chrome

Идем по порядку:

  1. Меню Браузера, обычно это справа вверху три точки :)
  2. Дополнительные инструменты = > «Инструменты разработчика«
  3. Зайти в «Настройки» панели разработчика, обычно это справа три точки на появившейся панели.
  4. В разделе настроек «Сеть», она же «Network«, ставим галку рядом с «Отключить кэш«, то есть «Disable cache«.
  5. Посетить нужный URL не закрывая панель разработчика!

Инструменты разработчика, встроены в Chrome, можно открыть по комбинации клавиш Ctrl+Shift+I.

Отключаем кэш редиректов в Mozilla FireFox

Как по мне, в огненной лисе даже все проще делается, идем по пунктам:

  1. Вписываем в строку поиска, она же адресная строка: about:config и переходим;
  2. Ищем настройку: browser.cache.disk.enable и выставляем FALSE;
  3. Теперь ищем настройку: browser.cache.memory.enable и так же выставляем FALSE;
  4. Проверяем нужный URL;

Дабы сохранить стабильность в производительность браузеров, рекомендую после достижения цели, таки вернуть настройки в исходное их состояние.