几个小时前,我在 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 重定向以某种方式缓存到 2018 年 11 月 20 日?
我尝试在页面上添加以下代码,并重启服务器。没有发生重定向,但页面完全空白:
<?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 Shell。非常感谢您的帮助。
答案1
这看起来像是 Varnish 的问题。302 重定向的默认设置是不可缓存的。请查看您的 Varnish 配置。
感谢@MichaelHampton 给出的正确答案,我必须通过 ssh 清除 varnish cash:$ curl -X PURGE –