2013-10-01 5 views
1

다른 호스트에서 문제가 발생하여 호스트 설정을 변경할 수 없어서 PHP 솔루션을 찾고 있습니다.symfony 응답 캐시 controll 헤더가 중복 됨

브라우저 (Symfony의 HttpFoundation \ Response)에 응답을 보낼 때 일부 헤더가 중복되어있어 모순됩니다. 브라우저는 캐시하지 않습니다.

PHP 코드

$response = new Response(
     $html, 
     200, 
     array(
      "content-type" => "text/html; charset=UTF-8", 
     ) 
    ); 

    $response->setCache(array(
     'last_modified' => $page->getEditedAt(), 
     'max_age'  => $staticCache, 
     's_maxage'  => $staticCache, 
     'private'  => false, 
     'public'  => true, 
    )); 

브라우저에서 헤더

캐시 제어의 일부 :있는 maxage = 1800, 공공, S-있는 maxage = 1800

캐시 제어 : 없음 -store, no-cache, 재 검증해야 함, 사후 점검 = 0, 사전 점검 = 0

날짜 : 2013 년 1 월 10 일 15:08:39 GMT

이 만료 : 목을 1981년 11월 19일 그리니치 표준시 08시 52분 0초

에서 Pragma : 노 캐시

하지만 내 페이지는 공공 및 캐시해야합니다. 나머지 헤더는 어디에 설정되며 어떻게 해제 할 수 있습니까?

답변

0

PHP가 캐싱 설정을 무시하고 "만료"날짜가 매우 구체적이며 PHP source code에 포함되어 있습니다. this 스택 오버플로 응답에 따르면 개발자의 생일입니다.

php.ini에서 session.cache-limiter setting을 변경하여이 기능을 끌 수 있습니다. session_cache_limiter function 페이지에는 여기에서 설정할 수있는 값에 대한 자세한 정보가 있습니다. 값을 public 또는 nothing으로 설정하고 다시 테스트 해보십시오.

당신은 볼 수 session.cache_limiter를 설정의 현재 값은 값 메아리 작은 테스트 페이지에 무엇 : 당신이 호스트를 편집 할 수 있기 때문에

<?php 

echo(ini_get('session.cache_limiter')); 

당신은, 당신은 PHP 솔루션을 찾고 있습니다 말했다 설정. ini_set 함수를 사용하여 코드 내의 값을 변경할 수 있습니다.