Как убрать редирект на https из кэша браузера?
Содержание
- 1 Как убрать редирект на https из кэша браузера?
- 1.1 Используйте режим инкогнито чтобы исключить влияние кэша браузера
- 1.2 Используйте отладчик с опцией «Не использовать кэш»
- 1.3 Способ третий — сбросить в браузере редирект https для конкретного домена
- 1.4 Как проверить редиректы или статусы страниц сайта без вероятного влияния кэша браузера?
- 1.5 Очистка кэша DNS в Google Chrome
Поскольку я работаю с настройкой сайтов и серверов, то часто сталкиваюсь с тем, что нужно переводить сайты на протокол HTTPS. Такая настройка часто включает в себя конфигурирование редиректов c http на https или обратно. Так вот, при проверке сайта, Google Chrome запоминает эти редиректы в свой кэш что называется «намертво». После чего, если даже вы будете менять настройки в файле .htaccess или конфигурации nginx — сайт всё равно будет редиректиться в вашем браузере на https.
Стандартная рекомендация в таких случаях — очистка кэша браузера. Но при этом будут удалены данные и других сайтов.
Используйте режим инкогнито чтобы исключить влияние кэша браузера
Еще один способ — использовать режим инкогнито. Можно открыть его комбинацией клавиш Ctrl+Shift+N.
Дело в том, что в этом режиме не сохраняются никакие данные о посещаемых сайтах. История, кэш, куки — всё это будет удалено при закрытии окна. Соответственно все эти данные не берутся из кэша Chrome. И часто помогает проверить какие-то изменения на сайтах имено этот режим.
Используйте отладчик с опцией «Не использовать кэш»
В хроме есть хороший инструмент — отладчик. Или как это называется debugger. Он вызывается с помощью клавиши F12 или по Ctrl+Shift+I. Ну, либо мышкой в меню. Через него можно просматривать заголовки страниц, в которых можно выяснить версию nginx, наличие кэша или узнать IP-адрес сайта. Кроме того, я этим инструментом активно пользуюсь в работе для проверки скорости загрузки сайта при оптимизации серверов.
Так вот, в его настройках есть опция, которая позволяет запретить хрому использование кэша при включенном дебаггере.
После активации этой опции Google Chrome не будет брать данные из кэша, соответственно ваши редиректы должны отрабатывать корректно, если они настроены на сервере.
Способ третий — сбросить в браузере редирект https для конкретного домена
Второй способ может быть неудобен тем, что требуется открыть отладчик. Первый может не подойти тем, кто не хочет очищать кэш или историю просмотров всего браузера — ведь там могут храниться какие-то нужные данные.
Поэтому есть способ самый «хардкорный» но и самый удобный. Введите в адресной строке такой адрес:
У вас должно открыться нечто подобное:
После этого хром начнет отрабатывать редиректы корректно, именно так, как они настроены на сервере или хостинге. Но вообще, лучше всего проверять редиректы не браузером.
Как проверить редиректы или статусы страниц сайта без вероятного влияния кэша браузера?
Все очень просто. Для того, чтобы исключить влияние кэша браузера — нужно не пользоваться браузером :)
Как же тогда быть? Ну вообще есть куча сервисов для проверки http-заголовков и статусов страниц. Например, есть специальные сервисы для проверки страниц и ссылок ссайта на 404 ошибку. Такой сервис сканирует ваш сайт и выдает отчет, в котором содержатся все ссылки на битые страницы.
Но для проверки редиректов или одной-двух страниц можно поступить более простым способом. Использовать консольные утилиты wget или curl. curl будучи запущен с опцией -I вернет заголовки ответа страницы.
А wget показывает полностью всю логику редиректов — что происходит при перенаправлении страниц, какие редиректы есть в цепочке.
Да и не только редиректы. Любые статусы которые отдает страница. IP тоже будет видно в выводе этой утилиты. Вообще, wget очень мощное средство. Где его брать? Оно обычно есть практически на любом сервере или VPS — достаточно подключиться в консоль по SSH.
Очистка кэша DNS в Google Chrome
Смежная тема — это DNS. Дело в том, что хром кэширует все подряд. В том числе и ответы DNS — сопоставления доменов IP-адресам сайтов. Часто при переносе сайтов или перенаправлении доменов требуется проверять работу на новых серверах или хостингах. Это можно сделать и без смены DNS глобально, чтобы убедиться в работоспособности сайта на новом хостинге или сервере. Вы просто подменяете DNS локально, в файле hosts на своем компьютере. После этого сайт будет открываться с нового сервера исключительно на вашем компьютере, а весь остальной мир по прежнему будет ходить на сайт на старый сервер.
Так вот, такая проверка бывает осложняется тем, что хром запоминает IP старого хостинга или сервера в кэше. И не желает перечитывать его из файла hosts. С этим тоже достаточно просто бороться, если знать о его таких «особенностях».
Пользоваться тем же инструментом, что был показан выше для очистки кэша редиректов.
Просто вводим в адресную строку chrome://net-internals/#dns и жмем там очистку кэша.
Непонятно, баг это или фича, но хром порой кэширует вообще всё подряд, и можно потратить кучу времени, чтобы разобраться — то ли дело в настройках сервера, то ли это хром гонит. Как бы там ни было — способы рабочие.
Не стоит полагаться на неизвестных вам разработчиков, поэтому старайтесь использовать инструменты, которые на 100% делают то, что от них ожидается.
Спа-си-бо! )
Со времён написания статьи интерфейс немного изменился + пункт DNS в хроме у меня как-то глючно выглядит, но кнопка «очистить кеш» в нём сохранилась и частично сработала!
PS. Сработала действительно частично, остался сайт, который почему-то открывается в хроме (и в режиме инкогнито), сугубо в виде мобильной версии! Другими браузерами с этой же машины — всё в норме, локальная копия этого же сайта в хроме — нормально отображается. Сайт на боевом сервере, в хроме, сугубо мобильную версию показывает. В чём засада пока не разобрался! ((
Комментарий на отдельной страницеИнтересная статья, спасибо.
Сегодня столнкулся с ситуацией кэширования редиректов из htaccess.
После переезда на новый движок сделал в нем несколько перенаправлений, все заработало.
Спустя пару дней сделал еще пару аналогичных правок.
НЕ РАБОТАЮТ!
Старые редиректы работают, новые (сделанные под копирку) нет.
Бился часа 2 — результат НУЛЕВОЙ.
Догадался зайти в вебмастер яндекса и проверить через инструменты ответ сервера — РАБОТАЕТ!
Запустил оперу.
Для верности исключил все возможные варианты кэша — почистил сам кэш, запустил закладку в режиме инкогнито, открыл панель разработчика и установил птичку «Disable cache» в закладке «Network»…
РАБОТАЕТ!!!
Делаю то же самое в хроме…
НЕ РАБОТАЕТ!!!
КАППЕЦ!
Комментарий на отдельной странице