Dacă utilizați Apache, puteți utiliza mod_rewrite pentru a vă arhiva în cache paginile dvs. web. Să presupunem că utilizați PHP și că aveți o solicitare pentru "/somepage.php". În fișierul .htaccess introduceți următoarele:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^$ # let's not cache urls with queries
RewriteCond %{REQUEST_METHOD} ^GET$ # or POST/PUT/DELETE requests
RewriteCond static_cache/%{REQUEST_URI} -s # Check that this file exists and is > 0 bytes
RewriteRule (^.*$) static_cache$1 [L] # If all the conditions are met, we rewrite this request to hit the static cache instead
În cazul în care memoria cache se stinge în gol, cererea este gestionată de scriptul PHP ca de obicei, deci acum este pur și simplu o chestiune de a face script-ul PHP să stocheze html rezultatul în memoria cache. Cea mai simplă modalitate de a face acest lucru este folosirea unei alte reguli htaccess pentru a prependa sfârșitul adăugați câteva fișiere PHP la toate cererile PHP (aceasta poate sau nu ar fi o idee bună, în funcție de aplicația dvs.):
php_value auto_prepend_file "pre_cache.php"
php_value auto_append_file "post_cache.php"
Atunci ai face ceva de genul asta:
pre_cache.php:
ob_start();
post_cache.php:
$result = ob_get_flush();
if(!$_SERVER['QUERY_STRING']) { # Again, we're not caching query string requests
file_put_contents("static_cache/" + __FILE__, $result);
}
Cu câteva expresii regulate suplimentare în fișierul .htaccess, am putea să începem, probabil, și cererea de șir de cereri de cache, dar voi lăsa asta ca un exercițiu pentru cititor :)