2009-05-25 2 views
2

내 웹 사이트를 호스팅하는 웹 서버가 마지막으로 수정되거나 만료 된 헤더를 반환하지 않습니다. 내 웹 콘텐츠를 캐시 할 수 있도록이 문제를 해결하고 싶습니다.mod_expires 또는 mod_headers가없는 apache를 만료 헤더를 보내려면 어떻게 구성해야합니까?

사이트가 제어 할 수없는 공유 환경에서 호스트되기 때문에 아파치 설정 파일에 액세스 할 수 없습니다. 그러나 .htaccess 파일을 통해 구성을 만들 수 있습니다. 서버 - 아파치 1.3 -은 mod_expires 또는 mod_headers로 구성되지 않았으므로 회사에서이를 설치하지 않습니다.

이러한 제한을 염두에두고 내 선택은 무엇입니까?

죄송합니다. 나는이 질문이 엄격하게 프로그래밍 질문이 아니라 더 많은 sys 관리자 질문이라는 것을 알고 있습니다. serverfault 공개 때 나는이 자연의 질문을 직접 확인합니다.

답변

3

어떤 종류의 콘텐츠입니까? 정적 (HTML, 이미지, CSS) 인 경우 헤더를 첨부하는 유일한 방법은 프런트 엔드 웹 서버를 사용하는 것입니다. 호스팅 회사에서 .htaccess를 사용할 수는 없지만 mod_headers가 활성화되어 있지 않은 것에 놀랐습니다. 캐시하지 않기 위해 더 많은 대역폭과 CPU (즉, 돈)가 필요합니다.

동적 콘텐츠 인 경우 페이지를 생성 할 때 제어 할 수 있습니다. 이것은 귀하의 언어에 따라 다릅니다;

if (!headers_sent()) { 
    header('Location: http://www.example.com/'); 
    exit; 
} 

아, 그리고 캐싱 헤더를 설정하는 방법에 대한 한 가지 : 여기에 PHP (그것은 또한 응답 코드를 설정해야대로, PHP 매뉴얼에서, 그리고 나쁜 예입니다)에 대한 예는 다음을 설정하지 마십시오 특히 CSS와 스크립트의 경우에는 너무 오래 지속됩니다. 이를 변경하고 싶지는 않지만 사람들이 여전히 브라우저에 이전 내용을 가지고있는 동안 부러진 사이트는 원하지 않습니다. 4-8 시간 범위에서 최대 캐시 설정을 권장합니다. 단일 사용자의 세션 또는 업무 일에 좋지만 그 이상은 아닙니다.

관련 문제