Несколько часов назад я использовал следующий код в моем htaccess для перенаправления домашней страницы на страницу обслуживания:
RewriteCond %{REQUEST_URI} !/maintenance/index.html$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif|js|css) [NC]
RewriteCond %{REMOTE_ADDR} !^92\.95\.110\.92
RewriteRule .* /maintenance/index.html [R=302,L]
Затем я закомментировал код, чтобы отображалась страница опять же, однако перенаправление все еще имело место после изменения доступа к предыдущему. Я также перезапустил сервер. Затем я проверил заголовки в онлайн-инструменте и вот что происходит:
Sun, 18 Nov 2018 07:57:58 GMT
Server:
Apache
Location:
http://www.website.com/maintenance/index.html
Cache-Control:
max-age=172800
Expires:
Tue, 20 Nov 2018 07:57:58 GMT
Content-Length:
231
Content-Type:
text/html; charset=iso-8859-1
Via:
1.1 varnish (Varnish/6.1), 1.1 varnish (Varnish/6.1)
X-Cache-Hits:
31
X-Cache:
HIT
Age:
5602
Connection:
keep-alive
Redirecting to: http://www.website.com/maintenance/index.html
Похоже, что перенаправление 302 каким-то образом кэшируется до 20 ноября 2018 г.?
Я попытался добавить следующий код на страницу, перезапустил сервер . Перенаправления не произошло, но тогда страница была полностью пустой:
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>
Могу ли я сбросить это «временное» перенаправление 302, чтобы остановить его как можно скорее? И удалить его полностью? У меня есть доступ к оболочке Linux. Большое спасибо за любую помощь.
Похоже, это проблема с лаком. По умолчанию для редиректа 302 не должно быть кешируемым. Посмотрите на свою конфигурацию Varnish.
Спасибо @MichaelHampton за правильный ответ, мне пришлось очистить деньги от лака через ssh, используя: $ curl -X PURGE -