My PHP code:
$expires_date = date('D, j F Y H:i:s', strtotime('now + 10 years')) . ' GMT';
header("Expires: $expires_date");
header('Content-type: text/javascript');
echo 'hello world';
When I check the response headers, I see this:
Expires:Thu, 01 Jan 1970 00:00:00 GMT
What am I doing wrong?
UPDATE:
Was just experimenting, but it seems that I can't even unset Expires via header_remove('Expires');
. I still see the 1970 date.
UPDATE:
My response headers:
Cache-Control:private
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:74
Content-Type:text/javascript
Date:Wed, 17 Oct 2012 22:40:45 GMT
Expires:Thu, 01 Jan 1970 00:00:00 GMT
Keep-Alive:timeout=5, max=98
Server:Apache/2.2.21 (Win32) PHP/5.3.9
Vary:Accept-Encoding
X-Powered-By:PHP/5.3.9
look at your htaccess file:
it looks like your
FilesMatch .php
is overriding the .htaccessContent-Type:text/javascript
rule and the PHP expires header because the script is a .php file.Comment out this header expires in your .htaccess and see if the PHP header +10 year expires still gives the 1/1/1970 date