0

사이트를 '유지 관리 모드'로 전환 할 수 있어야합니다. 그래서 나는 (원래 app.php가 app.php.bak로 이동했다) app.php에서이 같은 싼 해킹을 사용하고 있습니다 : 내가 페이지를 히트로전체 사이트에서 http 캐시를 비활성화하는 방법은 무엇입니까?

<?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?

아이디어가 있으십니까?

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

또는하지 않을 경우 (거부있어 끌어 오기 요청) 나는 파비앙 말을 읽고이 tutorial

답변

-1

당신을 httpd.conf에 액세스 할 수있는 경우 당신은 추가 할 수 있습니다 이것은 웹 서버에 의해 처리되어야한다는 것입니다. 그래서 프레임 워크 대신 서버 설정을 수정하기 위해 유지 보수 스크립트를 변경했습니다.

문제는 서버가 캐시 헤더를 제거 할 수 없다는 것입니다. 그런데 문제가 해결되었으므로 NginxHttpHeadersMoreModule이 제대로 작동하는 것을 발견했습니다.

+0

다른 파일에 PHP 파일이있는 경우 PHP로 작업하는 것일 수도 있습니다. – hnzlmnn

+0

아파치를 사용하지 않고 nginx를 사용하고 있습니다. – ChocoDeveloper

+0

nginx에 대해 많이 모른다 ... 하지만 다른 파일에 포함 된 PHP 파일을 가지고 있다면 PHP에서 헤더를 수정할 수 있습니다! – hnzlmnn

관련 문제