On Tue, Dec 27, 2016 at 10:29 PM, Yehuda Katz <yehuda@xxxxxxxxxx> wrote: > Why ExpiresByType is ignored when has SetHandler application/x-httpd-php ? > > /sitemap.xml Response Headers shows 1 day expiration while expected to be 1 > year (1 month) > > Content-Type: application/xml; charset=utf-8 > Date: Tue, 27 Dec 2016 19:59:00 GMT > Expires: Wed, 28 Dec 2016 19:59:00 GMT > > seems SetHandler forces it to apply text/html expiration and doesn't allow > to rewrite it > > ExpiresActive On > ExpiresDefault "access plus 1 month" > ExpiresByType text/html "access plus 1 day" > ExpiresByType application/xml "access plus 1 week" > > <FilesMatch ^sitemap\.xml$> > SetHandler application/x-httpd-php > Header set Content-Type "application/xml" > ExpiresDefault "access plus 1 year" > </FilesMatch> It's likely just an ordering problem. mod_expires runs before mod_headers and you can't really change it any meaningful way in this case (you can ask mod_headers to run much earlier, but then your scripts output will overwrite it anyway) Presumably your script issues Content-Type: text/html which is bogus and what's seen when mod_expires runs. A short while later, mod_headers changes the content-type. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx