בע"ה
Isn't Apache expected to handle/support it?Why ExpiresDefault in FilesMatch doesn't work (also doesn't rewrite ExpiresByType defined above the FilesMatch)?
BinyaminOn Wed, Dec 28, 2016 at 9:15 AM, Michael A. Peters <mpeters@xxxxxxxxxxxxxx> wrote:Oh I should add - when it is a php file I also set the cache control via php.
header('Cache-Control: max-age=' . $maxage);
for example.
On 12/27/2016 11:12 PM, Michael A. Peters wrote:
Hi, I regularly use php to generate all kinds of different XML.
This is what I do -
header('Content-Type: application/xml');
print($dom->saveXML());
exit();
Of course in that case $dom is a DOMDocument object - if you are using
print or echo to create XML then you need the header at the beginning of
the php, as it needs to be before any content is sent.
Using php to send the header avoids the need to set it with Apache.
On 12/27/2016 10:58 PM, Binyamin wrote:
בע"ה
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 <yehuda@xxxxxxxxxx
<mailto:yehuda@xxxxxxxxxx>> 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 <7raivis@xxxxxxxx
<mailto:7raivis@xxxxxxxx>> 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