Вставил после отдачи 304 потерянный exit - Я включил в апдейт морду. Ура!..
Но - СУЩИЙ АНЕКДОТ - теперь Р выкинул из индекса почти всё (из 350 страниц оставил 12).
Опять какие-нибудь совпадения?..
Fomich, В общем случае Вы, наверняка, правы, но у меня случай частный :) Я динамически не генерирую "прочих" файлов, посему ETag для них благополучно выдает апач.
Вот отклики сервера при обращении к имеющемуся на сайте файлу .doc:
c ifmod now
HTTP/1.1 304 Not Modified
Date: Mon, 28 Aug 2006 19:37:28 GMT
Server: Apache/1.3.33 (Unix)
Connection: close
ETag: "14f84e-f400-447c0e1d"
Expires: Mon, 28 Aug 2006 19:37:28 GMT
Cache-Control: max-age=0
c If-Modified-Since - 1 year (выделено жирным для Алёши)
HTTP/1.1 200 OK
Date: Mon, 28 Aug 2006 19:38:43 GMT
Expires: Mon, 28 Aug 2006 19:38:43 GMT
Last-Modified: Tue, 30 May 2006 09:19:25 GMT
Accept-Ranges: bytes
Content-Length: 62464
Content-Type: application/msword
В любом случае - всем спасибо.
Попробуем еще раз.
now и -1 month - это дата IfMod-a.
lastmod - между ними.
Сервис ввыдает ифмод месячной давности, и получает 200, ведь ластмод более поздний.
Дык, меняется-то не дата документа (ее чужой сервис поменять не может), а дата выдаваемого ifmod-a
Нет, Алёша, только так и может ЧУЖЕЙ сервис спровоцировать 304.
Алеша, я не понял. Проверил указанным Вами сервисом, отдача 304 на "now" и 200 на "-1 month" мне кажется правильной.
ИМХО, принципиальной разницы в кодах обработки нет, за исключением того, что exit я потерял. Тут бесспорный сеньк.
Всё же, если в течение недели ничего не изменится, попробую убрать обработку, пусть опять на всё 200 валит.
Ну, на Validation я давно положил...
А соотношение код/текст 1/1 (на морде) и при таблицах, по-моему, тоже не худший вариант.
Морду от 10.08 не вижу, вижу 20.07 при сортировке по дате.
http://www.yandex.ru/yandsearch?ras=1&date=&text=&lang=all&within=0&from_day=&from_month=&from_year=&to_day=15&to_month=3&to_year=2005&mime=all&Link=&numdoc=10&site=landnn.ru&ds=&how=tm
Неповоротливость и включение обработки - возможно, что и совпадение.
урл не жалко landnn.ru, заодно и верстку облайте :)
скрипт обработки:
$now=time();$headers=getallheaders();$refresh=TRUE;
if(isset($headers["If-Modified-Since"])){
$arraySince=explode(";",$headers["If-Modified-Since"]);
$since=strtotime($arraySince[0]);
if($since>=$lm)$refresh=FALSE;
}
if(!$refresh)header("HTTP/1.1 304 Not changed");
$slm=gmdate("r", $lm);
header("Last-Modified: $slm");
header("Expires: " . gmdate("r", time()+10));
Не въехал я до конца с Expires, может чё наврал?..
.htaccess
ErrorDocument 404 /e404.php
Options +ExecCGI
Options -Indexes +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.landnn\.ru
RewriteRule ^(.*)$ http://landnn.ru/$1
RewriteCond %{REQUEST_URI} /(.*)/
RewriteRule ^(.*)/$ /$1.php [L]
...
А не обрабатывать IfMod - это все равно, что ничего не делать...
не будет, ибо кривая.
Бяда, реклама отменяется, т.к. юзер ничего не увидит :) , ибо фреймы... Тройки на промежуточной "расфреймизации", ну очень я намудрил со структурой. Но все, кроме Р, боди индексят...
Да и трафа - кот обрыдался, 200-300 хостов в сутки.