4 votos

Chrome almacenamiento en caché de redirecciones 302

Tengo un script de php es utilizado para girar las imágenes de banners en un sitio.

En Firefox/IE página se actualiza de hacer otro pedido y una imagen diferente será devuelto.

En Chrome, la petición parece ser almacenados en caché y sólo abrir la página en una nueva pestaña se causa a la realidad, consulta la secuencia de comandos.

Creo que este acostumbrado a trabajar en versiones anteriores de chrome, he probado un par de diferentes tipos de códigos de redirección todos con el mismo resultado.

Algún consejo?

<img class="banner" src="/inc/banner.php" alt="">

~$ cat /var/www/inc/banner.php 
<?php

header("HTTP/1.1 302 Redirect");
header("Cache-Control: max-age=0, no-cache, no-store, must-revalidate");

//header('HTTP/1.1 307 Temporary Redirect');
//header("expires: none");
//header("expires: max");
//header("Cache-Control: public");

$folder = '../img/banner/';

$exts = 'jpg jpeg png gif';

$files = array(); $i = -1;
if ('' == $folder) $folder = './';

$handle = opendir($folder);
$exts = explode(' ', $exts);
while (false !== ($file = readdir($handle))) {
foreach($exts as $ext) { // for each extension check the extension
if (preg_match('/\.'.$ext.'$/i', $file, $test)) { // faster than ereg, case insensitive
$files[] = $file; // it's good
++$i;
}
}
}
closedir($handle); // We're not using it anymore
mt_srand((double)microtime()*1000000); // seed for PHP < 4.2
$rand = mt_rand(0, $i); // $i was incremented as we went along

header('Location: '.$folder.$files[$rand]); 
flush();
?>

curl de salida;

~$ curl -I -k https://example.net/inc/banner.php
HTTP/1.1 302 Redirect
Server: nginx/1.1.14
Date: Fri, 24 Feb 2012 03:23:46 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.3.10-1ubuntu1
Cache-Control: max-age=0, no-cache, no-store, must-revalidate
Location: ../img/banner/2.jpg

8voto

MEM76 Puntos 71

Error en chrome: http://code.google.com/p/chromium/issues/detail?id=103458

1voto

Kim Granlund Puntos 11

En mi página web, he tenido la parte superior de los marcos de nombre de archivo a ser: banner.php no aparecen en Google Chrome, funcionaba bien en todos los demás navegador... Yo estaba buscando errores en el código por horas, luego he cambiado el nombre del archivo y el enlace desde el conjunto de marcos para mybanner.php y funcionó también en Google chrome!

0voto

Accordin W3C (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3) "Esta respuesta sólo es almacenable en caché si se indica por un Cache-Control o Expira campo de encabezado". Trate de usar un 301 "Movido Permanentemente"

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: