サイトのバナー画像を回転させるために使用されるphpスクリプトがあります。
Firefox/IEでは、ページを更新すると別のリクエストが行われ、別の画像が返されます。
Chromeでは、リクエストはキャッシュされているようで、新しいタブでページを開くだけで、実際にスクリプトがクエリされます。
これは以前のバージョンのChromeで機能していたと思います。いくつかの異なるタイプのリダイレクトコードを試しましたが、すべて同じ結果になりました。
任意のヒント?
<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 -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
私のホームページでは、トップフレームのファイル名は次のようになっています:banner.php Google Chromeに表示されず、他のすべてのブラウザで問題なく動作しました...コードのエラーを何時間も探していたので、ファイル名を変更しましたフレームセットからmybanner.phpへのリンクは、GoogleChromeでも機能しました。
W3Cによると( http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3. ) "この応答はキャッシュのみ可能Cache-ControlまたはExpiresヘッダーフィールド "で示されている場合。 301「永久に移動」を使用してみてください