Невозможно перезаписать Cache-Control в PHP - PullRequest
0 голосов
/ 09 сентября 2010

Я переместил старый сайт на новый сервер, и клиент обнаружил очень странное поведение.

Очень близко к концу, у меня есть этот код:

if (!$this->cache) {
    header('Expires: '.gmdate('d M Y H:i:s', 946684800).' GMT');
    header('Cache-Control: no-cache');
    header('Pragma: no-cache');
}

Странно, что строка Cache-Control не работает.После перехвата пакетов я вижу это:

Expires: 01 Jan 2000 00:00:00 GMT
Cache-Control: max-age=300, public
Pragma: no-cache

Порядок заголовков точно такой, как я их установил, но Cache-Control совершенно другой.Я добавил свой код для любого упоминания об управлении кэшем, и есть только это упоминание, и еще одно, предназначенное для принудительного кэширования в другом файле, но оно отличается от того, что я вижу, поэтому оно не может быть причиной.

Кто-нибудь знает, почему меняется Cache-Control?

Ответы [ 2 ]

0 голосов
/ 30 июня 2012

Я думаю, что вы работаете с Squid, вы должны проверить его конфигурацию на:

header_replace Cache-Control max-age=300, public

0 голосов
/ 09 сентября 2010

Если вы используете сеансы, возможно, PHP перезаписывает их. Взгляните на session_cache_limiter() в руководстве.

Кроме того, вы можете попробовать установить эти заголовки после вызова session_start().

(Изменить: я пропустил немного о "Очень близко к концу", поэтому, возможно, это не ваша проблема.)

...