我想检查网页中文档的年龄,但是没有显示!这是telnet到服务器的结果:
telnet av.hostoi.com 80
Connected to av.hostoi.com. HEAD / HTTP/1.0
HTTP/1.1 200 OK Date: Tue, 23 Oct 2012 16:55:40 GMT
Server: Apache
X-Powered-By: PHP/5.2.17
Connection: close
Content-Type: text/html
Connection closed by foreign host.
在另一台服务器上,还包括以下两行,但上面没有:
Last-Modified: Fri, 17 Jun 2011 11:17:45 GMT
ETag: "2ce392-b1-4a5e688eae840"
所以我搜索了互联网,据我所知,在Apache中应该有一个配置来设置htaccess上的标题和etag。但是,我无法找到任何向我展示的地方。
以下是Apache中加载的模块,如果有帮助的话:
core mod_authn_file mod_authn_default mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_default mod_auth_basic mod_include mod_filter mod_log_config mod_env mod_expires mod_headers mod_setenvif mod_version prefork http_core mod_mime mod_status mod_autoindex mod_asis mod_info mod_vhost_alias mod_negotiation mod_dir mod_actions mod_alias mod_rewrite mod_so mod_php5 mod_ruid2
据我所知,必须启用mod_header
,似乎就是这种情况。
对此有何帮助?
编辑: 试过提出的解决方案: 将.htaccess文件放在/文件夹中,即使有一个名为“不在此处上传”的文件。 .htaccess的内容:
<code>
# Do not remove this line, otherwise mod_rewrite rules will stop working
RewriteBase /
Options -Indexes
SSILastModified on
<IfModule mod_expires.c>
FileETag MTime Size
ExpiresActive on
ExpiresDefault "access plus 10 days"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType application/x-shockwave-flash "access plus 1 week"
ExpiresByType text/css "access plus 1 week"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/x-icon "access plus 6 month"
ExpiresByType image/ico "access plus 6 month"
</IfModule>
</code>
我将此文件放在public_html文件夹和文件update.ver所在的子文件夹nod_update3中。 然后我执行检查文档年龄的脚本,如下所示: ./check_http -H av.hostoi.com -u /nod_update3/update.ver -M 2d HTTP CRITICAL:HTTP / 1.1 200 OK - 文档修改日期未知 - 26316个中0159秒响应时间字节|时间= 0,158965s ;;; 0,000000大小= 26316B ;;; 0
你可以看到没有显示修改日期,即使在ftp客户端上它显示它上次修改25.10.2012
我尝试检查同一文件夹中的另一个文件,如下所示: ./check_http -H av.hostoi.com -u /nod_update3/em000_32_l0.nup -M 2d HTTP CRITICAL:HTTP / 1.1 200 OK - 最后一次修改13,5天前 - 56472个字节1059秒响应时间|时间= 1,059014s ;;; 0,000000大小= 56472B 0 ;;; srvmon插件#
您可以看到日期修改已知。那么为什么ver文件存在问题呢? 可以在此网址中检查该文件: http://av.hostoi.com/nod_update3//update.ver
答案 0 :(得分:0)
问题是您在第一台服务器上启用了静态内容缓存,而在第二台服务器上启用了静态内容缓存。
请查看第二台服务器上的apache主配置文件,虚拟主机或.htacess 如果你有类似的东西:
<IfModule mod_expires.c>
FileETag MTime Size
ExpiresActive on
<filesMatch "\.ver$">
ExpiresDefault "modification plus 2 week"
</filesMatch>
</IfModule>
您还需要启用apache模块mod_expires。
希望这有帮助!
答案 1 :(得分:0)
回溯到Apache的源代码,我们可以看到这个错误配置的根本原因是“Xbithack Full”启用的语义隐式覆盖了“SSILastModified On”启用的语义。
if (conf->lastmodified > 0) {
... {
ap_update_mtime(r, r->finfo.mtime);
ap_set_last_modified(r);}}
else if (((conf->xbithack == XBITHACK_FULL ||
(conf->xbithack == XBITHACK_UNSET &&
DEFAULT_XBITHACK == XBITHACK_FULL))
...)) {
ap_update_mtime(r, r->finfo.mtime);
ap_set_last_modified(r);
}
此处一种可能的解决方案是将“SSILastModified on”替换为“Xbithack Full”。