Apache - как отключить кеширование браузера при отладке htaccess

Я пытаюсь отладить файл .htaccess. FireFox сохраняет переадресацию кеширования, и я не могу обойти их. Обычно я нажимал Ctrl + F5, но поскольку он уже перенаправил меня на другую страницу, это просто обновляет страницу, на которую я был отправлен, а не URL-адрес, который я набрал. Есть ли способ принудительно обновить URL-адрес?

Вот пример:

  • Переадресовать example.com/hi на example.com/hello, протестировать в FireFox и работать
  • Удалить эту строку из .htaccess
  • Введите example.com/hi в FireFox, он по-прежнему перенаправляется на example.com/hello
  • Введите example.com/hi в Chrome, он не перенаправляет

Вот почему я думаю, что это проблема кеширования браузера, а не кеширование сервера.

Изменить: похоже, это особенность FireFox, но быстрое решение - использовать Chrome. Кэш истек через час, что слишком долго при попытке отладки.

Ответ 1

Если вы используете RewriteRule, просто используйте R вместо R = 301. Для других целей вам придется очищать кеш браузера всякий раз, когда вы меняете перенаправление. (Если вы не знаете, как очистить кеш браузера, поиск в Google для получения инструкций должен обеспечить быстрый и простой ответ - или не стесняйтесь комментировать, и я помогу вам.)

Проще говоря, старайтесь избегать 301s, где это возможно, до тех пор, пока вы не перенаправите свои перенаправления. Если вы не можете избежать их, приготовьтесь регулярно очищать кеш браузера.

Ответ 2

Очистка сетевого кеша Firefox работает для меня. Также для 301 перенаправления.

Настройки/Функции > Дополнительно > Сеть > Кэшированный веб-контент.

Clear network cache in Firefox preferences

См. https://support.mozilla.org/en-US/kb/how-clear-firefox-cache

Ответ 3

В Google Chrome откройте новую вкладку в режиме "Инкогнито", используя:

CTRL-SHIFT-N

Очень полезно для отладки.

Ответ 4

Чтобы очистить кеширование htaccess/redirect в Google Chrome:

  • Выберите "Настройки" > "Дополнительно" > "Конфиденциальность" > "Очистить данные просмотра"
  • Выберите "Кэш файлы и файлы"
  • Нажмите "Очистить данные просмотра"

Теперь ваша страница должна загружать новые настройки htaccess.

Ответ 5

Я думаю, что это стоит здесь весить, на всякий случай мой опыт помогает кому-либо. Я регулярно переключаюсь между отраслью разработки и производства на своей локальной машине. Отделение разработки - это моя локальная среда, а производственная ветвь - для моего удаленного сервера. Единственное различие между этими двумя средами - файл .htaccess. Мой удаленный сервер нуждается в правиле перезаписи, если кто-то не вводит "www" перед URL:

# If www is missing from the beginning of the URL
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Однако это правило перезаписи не работает для моей локальной среды из-за структуры URL. Поэтому в моей локальной версии .htaccess я комментирую правила перезаписи.

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

www.www-local.myurl.local

Если я использую Safari, я получаю правильный URL:

www-local.myurl.local

Чтобы устранить эту проблему Chrome, я перешел в Инструменты разработчикa > Настройки > Общие > и отметьте "Отключить кеш (в то время как DevTools открыт)"

С этим отмеченным я просто должен открыть Dev Tools и перезагрузить, чтобы получить текущий .htaccess.

Ответ 6

В Firefox откройте панель инструментов разработчика, нажав Option Command I. Затем нажмите Настройки (это маленький значок) и в разделе Расширенные настройки установите флажок Отключить HTTP-кэш (когда панель инструментов открыта). Это помогло мне.

Ответ 7

После попыток обновить мой кеш бесчисленное количество раз я решил очистить файлы cookie для моего сайта, я не знаю, почему и как, но это очистило его для меня. Может быть, это что-то конкретное для Magento, но может быть более общим.

Ответ 8

В Google Chrome откройте панель инструментов разработчика. Затем нажмите "Настройки" (это значок с 3 точками) и в разделе "Сеть" установите флажок "Отключить кэш (когда открыт DevTools)".

Ответ 9

В Chrome вы можете отключить кэш браузера на панели инструментов разработчика panel

Command+Option+C (Mac) or Control+Shift+C (Windows, Linux, Chrome OS).

На вкладке Network вы можете найти флажок Disable cache.
Работает только при открытой панели инструментов разработчика. enter image description here