Q:

How to make JS and CSS cacheable until changes? 

How to make JS files and CSS files cacheable, until the files are changed?  I'm using HTML, JS, CSS, PHP on a apache server.  The PHP page must not be cached.  Thanks in advance! 
EDIT: what Google PageSpeed Insights says:

A:

For php set in php file put expiration date in header very big
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 2020 05:00:00 GMT"); // 2020

OR past date
header("Expires: Sat, 26 Jul 1999 05:00:00 GMT"); // 1999

To say to browser to reload cached pages you cau change header to somethink like this 
 header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
 header ("Last-Modified: " .  gmdate("D, d M Y H:i:s") . "  GMT"); 
 header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache");   

htaccess rules to disable cache
 <filesMatch "\.(html|htm|js|css)$">
 FileETag None
 <ifModule mod_headers.c>
  Header unset ETag
  Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
  Header set Pragma "no-cache"
  Header set Expires "Mon, 26 Jul 1999 05:00:00 GMT"
  </ifModule>
  </filesMatch>

