আমি সত্যিই পুরো দিনটি ব্যয় করেছি এবং Nginx যথাযথভাবে খেলতে পারার কাছাকাছি এসেছি না বিশেষ করে Nginx যেভাবে ভুলভাবে সর্বশেষ-পরিবর্তিত: তারিখ শিরোনামকে শেষ-সংশোধিত শিরোলেখের জন্য আরএফসি-র অন্তর্ভুক্ত নয় with
আমি এই সমাধানটি খুঁজে পেয়েছি যা আপনি যদি পিএইচপি ব্যবহার করেন তবে ঠিকঠাক কাজ করে এবং আপনার প্রয়োজন মতো টুইট করা যেতে পারে। আশা করি এটা সাহায্য করবে. আপনার বাকী কোডের আগে আপনার। Php পৃষ্ঠাগুলির একেবারে শীর্ষে এটি অন্তর্ভুক্ত করুন।
<?php
//get the last-modified-date of this very file
$lastModified=filemtime(__FILE__);
//get a unique hash of this file (etag)
$etagFile = md5_file(__FILE__);
//get the HTTP_IF_MODIFIED_SINCE header if set
$ifModifiedSince=(isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false);
//get the HTTP_IF_NONE_MATCH header if set (etag: unique file hash)
$etagHeader=(isset($_SERVER['HTTP_IF_NONE_MATCH']) ? trim($_SERVER['HTTP_IF_NONE_MATCH']) : false);
//set last-modified header
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $lastModified)." GMT");
//set etag-header
//header("Etag: $etagFile");
header("ETag: \"$etagFile\"");
//make sure caching is turned on
header('Cache-Control: private, must-revalidate, proxy-revalidate, max-age=3600');
//check if page has changed. If not, send 304 and exit
if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])==$lastModified || $etagHeader == $etagFile)
{
header("HTTP/1.1 304 Not Modified");
header("Vary: Accept-Encoding");
exit;
}
?>
তারপরে redbot.org এবং www.hscriptts.com এ আপনার সাইটটি পরীক্ষা করুন
হালনাগাদ:
- 304 পরিবর্তিত প্রতিক্রিয়া সহ পরিবর্তিত শিরোনাম প্রেরণ করা হয়েছে (প্রয়োজনীয়)
- পরিবর্তিত ক্যাশে: কন্ট্রোল শিরোনাম সর্বাধিক বয়স আপনার নিজের প্রয়োজন অনুসারে টুইট করা যেতে পারে।
- যেখানে dueণ আছে তা দেওয়ার জন্য, আমি সমাধানটি এখানে পেয়েছি এবং এটি সামান্য টুইট করেছি - https://css-tricks.com/snippets/php/inte Fightnt-php-cache-control/