如果打开gzip,Nginx会在etag上添加W/
。这意味着它是一个弱小的标签
使用substr()
检查强或弱的etags是否可以 - 或者我在这里遗漏了什么.....有没有更好的方法来了解nginx是否正在提供压缩内容?
我试图检查gzip是否已通过curl_init启用到我自己的服务器,但它无效并且正在创建一个循环。
$etag = md5($request->getMatchedRoute());
if($browserEtag = $request->getHeader('If-None-Match')){
if(substr($browserEtag, 0, 2) === 'W/'){
$prefixEtag = 'W/';
}else{
$prefixEtag = '';
}
if($browserEtag === $prefixEtag.$etag){
$response->setStatus('304 Not Modified');
// only send headers and exit
$response->headerFlush();
}
}else{
$response->addHeader('ETag', $etag);
$response->addHeader('Cache-Control', 'public, max-age=6000');
$response->setBody(file_get_contents($somefile));
$response->flush();
}