בע"ה Hi,
As I wrote in earlier example, `Header set Content-Type "application/xml"` still returns 1 day expiration (not the one defined in ExpiresByType). The same result when switching configuration order of FilesMatch before ExpiresDefault, or order of LoadModule's expires_module and headers_module. Also this example will return expiration only 1 day, while expected 1 year: <FilesMatch ^sitemap\.php$> Header set Content-Type "application/xml" ExpiresDefault "access plus 1 year" </FilesMatch> it returns Content-Type: application/xml Date: Wed, 28 Dec 2016 06:38:09 GMT Expires: Thu, 29 Dec 2016 06:38:09 GMT It seems to as a Apache bug. I don't know if ever it was working. Any workaround (configuration fix) for it for now? Do you know if it worked right in any Apache build/version? Binyamin On Wed, Dec 28, 2016 at 5:29 AM, Yehuda Katz <yeh...@ymkatz.net> wrote: > It might have something to do with the order the modules handle the > request. > What happens if you tell PHP to set the content type to application/xml? > > - Y > > On Tue, Dec 27, 2016 at 3:55 PM, Binyamin <7rai...@inbox.lv> 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> >> >> tested on Apache 2.4.X builds. >> >> How to fix this issue? >> >> >> >> Binyamin >> > >