diff --git a/src/Plugin/HeaderRewritePlugin.php b/src/Plugin/HeaderRewritePlugin.php index 9eccdf3..8810b7e 100644 --- a/src/Plugin/HeaderRewritePlugin.php +++ b/src/Plugin/HeaderRewritePlugin.php @@ -4,6 +4,7 @@ use Proxy\Plugin\AbstractPlugin; use Proxy\Event\ProxyEvent; +use Proxy\Config; class HeaderRewritePlugin extends AbstractPlugin { @@ -40,7 +41,7 @@ function onHeadersReceived(ProxyEvent $event){ // we need content-encoding (in case server refuses to serve it in plain text) // content-length: final size of content sent to user may change via plugins, so it makes no sense to send old content-length - $forward_headers = array('content-type', 'zzzcontent-length', 'accept-ranges', 'content-range', 'content-disposition', 'location', 'set-cookie'); + $forward_headers = array('cache-control', 'content-type', 'zzzcontent-length', 'accept-ranges', 'content-range', 'content-disposition', 'location', 'set-cookie'); foreach($response->headers->all() as $name => $value){ @@ -57,13 +58,14 @@ function onHeadersReceived(ProxyEvent $event){ $response->headers->set('Content-Disposition', 'filename="'.$filename.'"'); } - - // do not ever cache our proxy pages! - $response->headers->set("cache-control", "no-cache, no-store, must-revalidate"); - $response->headers->set("pragma", "no-cache"); - $response->headers->set("expires", 0); + + if (!Config::get('allow_client_caching')) { + // do not ever cache our proxy pages! + $response->headers->set("cache-control", "no-cache, no-store, must-revalidate"); + $response->headers->set("pragma", "no-cache"); + $response->headers->set("expires", 0); + } } - } ?> \ No newline at end of file