Дата последнего изменения веб-страницы неизвестна

Я хотел бы проверить возраст документа на веб-странице, но он не отображается! Вот результат телнет к серверу:

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. 

на другом сервере также включены следующие 2 строки, которых нет выше:

Last-Modified: Fri, 17 Jun 2011 11:17:45 GMT
ETag: "2ce392-b1-4a5e688eae840"

Поэтому я искал в Интернете, и насколько я мог понять, должна ли быть конфигурация в apache для включения и включения заголовков в htaccess? но я не мог найти место, которое показывает это.

Вот загруженные модули в apache, если это поможет:

Ядро 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:

#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>

я положил этот файл в папку public_html и в подпапку nod_update3, где существует файл update.ver. Затем я выполняю скрипт, который проверяет возраст документа следующим образом:

./check_http -H av.hostoi.com -u /nod_update3/update.ver -M 2d
HTTP CRITICAL: HTTP/1.1 200 OK - Document modification date unknown - 26316 bytes in 0,159 second response time |time=0,158965s;;;0,000000 size=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 - Last modified 13,5 days ago - 56472 bytes in 1,059 second response time |time=1,059014s;;;0,000000 size=56472B;;;0
srvmon plugins #

как видите дата модификации известна. так почему проблема с файлом ver? файл можно проверить по этому адресу: http://av.hostoi.com/nod_update3//update.ver

3 ответа

X-Powered-By: PHP/5.2.17

Похоже, что эта страница генерируется PHP, и в этом случае Apache не знает последний измененный tamestamp. Это скрипт PHP обязан установить Last-Modified заголовок в этом случае, который, по-видимому, не делает.

Если это просто статические файлы, то вы, вероятно, захотите настроить Apache для их непосредственного обслуживания, а не для обслуживания через скрипт PHP. Если они не являются статическими файлами, то вам нужно исправить скрипт PHP, чтобы установить Last-Modified заголовок соответственно.

Возвращаясь к исходному коду 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».

Мы наконец перешли на нового хостинг-провайдера и теперь все работает. Спасибо за помощь и счастливого Рождества. Вот результат проверки.

srvmon plugins # ./check_http -H baza32.info  -u /nod_update3/update.ver  -M 3d

HTTP OK: HTTP/1.1 200 OK - 26168 bytes in 0,219 second response time |time=0,218608s;;;0,000000 size=26168B;;;0
Другие вопросы по тегам