בע"ה
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 <[email protected]> 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 <[email protected]> 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
>>
>
>