0

サイトを「メンテナンス モード」にできるようにする必要があります。だから私は app.php でこのような安価なハックを使用しています (元の app.php は app.php.bak に移動されました):

<?php

$key = 123;

if(isset($_GET['skip_maintenance_key']) && $_GET['skip_maintenance_key'] == $key) {
    setcookie('skip_maintenance_key', $key);
}

if(isset($_COOKIE['skip_maintenance_key']) && $_COOKIE['skip_maintenance_key'] == $key) {
    include 'app.php.bak';
    // placeholder
} else {
    //header('Cache-Control: public, maxage=30');
    header('Status: 503 Service Unavailable');
    include 'html/error/503.html';
}

問題は、http キャッシュを使用するページにアクセスするとすぐに、そのページが Cloudflare や自分のプロキシなどの仲介者によってキャッシュされ、すべての人に提供され始めることです。

だから私がしたいのは、メンテナンス中にhttpキャッシュをグローバルに無効にすることです.おそらくコード行を追加し// placeholderますか?

何か案は?

4

2 に答える 2

0

Fabien が (拒否されたプル リクエストで) これは Web サーバーで処理する必要があると言っているのを読みました。そのため、メンテナンス スクリプトを変更して、フレームワークではなくサーバー構成を変更しました。

問題は、サーバーがキャッシュ ヘッダーを削除できなかったことです。しかし、その後、問題なく機能するNginxHttpHeadersMoreModuleを見つけたので、問題は解決しました。

于 2013-02-02T22:31:13.060 に答える
-1

httpd.conf にアクセスできる場合は、次を追加できます。

Header set Cache-Control no-cache
Header set Expires 0

そうでない場合は、このチュートリアルをご覧ください

于 2013-02-01T20:56:37.800 に答える