即使明确设置,Apache也不发送Last-Modified头信息

7

我有一个关于“最后修改”头信息的问题。

我创建了一个简单的测试页面:

<?
header('Last-Modified: Thu, 14 Feb 2013 12:41:31 GMT');
?>

当我使用浏览器打开此测试页面时,如果检查标题,将没有Last-Modified标题。所有其他标准标题都设置正确。无论如何,如果我通过https访问测试页面,则设置了Last-Modified标题。
我还在另一个服务器上尝试了相同的测试,并且即使没有https,我也可以看到正确设置的标题。
那么,什么可能会阻止/取消第一台服务器上的标题?我不包括httpd.conf文件,因为它非常长。我将只包括缓存部分,即使我没有看到任何与此问题有关或错误的内容:
ServerSignature Off
ServerTokens Prod

Header unset ETag
FileETag None
<FilesMatch "(?i)^.*\.(ico|flv|jpe?g|png|gif|js|css).*$">
    Header set Cache-Control "public, no-transform"
    Header unset Vary:
</FilesMatch>
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault A2592000
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType text/plain "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType application/x-javascript "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
    ExpiresByType image/x-icon "access plus 1 year"
</IfModule>

提前致谢


在调用 header() 函数之前,是否有可能已经发送了一些内容?必须在开始向客户端发送任何内容之前调用该函数。 - Okonomiyaki3000
2个回答

1

尝试

ssi off;

在这个域名的nginx配置中。

-3

看起来标题没有问题,但是在一些服务器上使用<? ?>而不是<?php ?>可能会导致问题。


它们可能会引起问题,因为配置设置为PHP需要 <?php ?>。但是在这种情况下并非如此,因为使用HTTPS时他的代码可以正常工作。 - Kayla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接