![]() |
SSI и PHP в одном файле
нужно отсылать заголовок last modified при запросе index.shtml
можно ли это сделать только с помощью SSI ? если нет то как сделать чтобы в файле shtml одновременно работал код php и инклюды ssi ? покачто для выполнения задачи безуспешно были приняты меры: пытался добавить в файл index.shtml запись вида: <!--#include virtual="http.php"--> а в файл http.php прописал код: <?php header("last-modified: 123"); ?> но при запросе index.shtml заголовки не отдаются((( что тут делать, помогите |
Попробуйте следующий код
Код:
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); |
Prisoner
пробЫвал( как сделать чтобы в файле shtml одновременно работал код php и инклюды ssi ? это возможно в апаче или в httpaccess ? щас попробую приинклюдить перл скрипт <!--#exec cgi="perl.pm"--> в perl как должен выглядеть скрипт отправляющий заголовок? вот нашел это но оно не работает: #!/usr/bin/perl my @ns_headers = ('User-Agent' => 'Mozilla/4.76 [en] (Win98; U)', 'Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*', 'Accept-Charset' => 'iso-8859-1,*,utf-8', 'Accept-Language' => 'en-US', ); ... $response = $browser->get($url, @ns_headers); |
E-mail
А зачем тебе такое? SSI еще и плюс php? |
если есть PHP, то можно инклудить всё что угодно с помощью РНР
|
В самом деле...:blink:
|
Цитата:
на всякий случай - помним, что header надо отдавть до всякой лезущей в броузер строки? |
Не перевелись на руси богатыри... и интернет им провели :)
|
ничего не имею против чувства юмора.
но ситуация такая: либо переписывать сайт, либо внести изменения на то что уже есть. само собой напрашивается второй вариант, так как сайт не мой и нету никакого желания показывать авторам "как надо". в общем кому интересно, я тут облазил гугл и узнал что в апаче 1.1.3 оригинальной версии ssi заголовки last mod и if mod since вообще не отрабатываются. в следущих версиях эта ошибка вроде бы(!) присутствовала, но как то расплывчато об этом, а потом бум и в 1.3.* какойто версии опять пишут что этот баг исправлен.. както странно они его исправляют исправляют с каждой версией, а он всеравно присутствует.. кому интересно леха апач орг рубрика "подробнее" о версии апача.. проблема заголовка last mod мной вроде решена, кому интересно, при запросе страницы содержащей инклюды ssi заголовок last mod сознательно глушится, принудительно заставить отдавать его можно с помощью строки в конфиге xbithack full + поставить exec для группы на выполнение в файле с ssi. с if mod since проблема еще хуже... вродебы ошибка 304 выдается если файл не изменен, но пропадает last mod... а при запросе if mod since настоящего времени запрос проглатывается и ответ выдается будто его и нету.. казалось бы нет программы да и смысла запрашивать у сервера изменялси ли файл с настоящего времени до настоящего времени, Но тем не мение вроде как это стандарт... продолжаю копать.. хотелось бы все-таки узнать как настроить коректно заголовок if mod since для ssi под апач 1.3.3... вопрос открыт. |
archy
Цитата:
дело в том что сайт на ssi + php + perl + xmlt + sql ну и ксс и хтмл там всякий и шаблоны сделаны с использованием ssi а это не только инклюды(!), переписывать все что сделано с помощью ssi и подругому обдумывать логику строения на php не представляется возможным изза объема ресурса. |
E-mail
я, конечно, дико извиняюсь, а как насчет document.lastmodified на JavaScript? Он раньше прекрасно разруливал ситуацию. Хотя для динамических сайтов это все вообще теряет смысл =/ В чем вообще задача-то про lastmodified? |
mar
Свойство lastModified в JavaScript происходит от даты шапки HTTP, высылаемой сервером. Серверы обычно получают эту дату, проверяя дату изменения файла или контента в ячейке бд. Дата последнего изменения не является необходимой частью шапки/header (если банально оценивать это со стороны, что клиент запросил информацию - сервер отдал информацию), и некоторые серверы(плохие серверы) её не предоставляют. Если сервер не возвращает информацию о дате последнего изменения, JavaScript получает 0, который отображается как January 1, 1970 GMT. т.е. проще говоря яваскрипт работает на машине клиента и не может заставить сервер выдавать заголовок до того как сам перетечет на клиентскую машину вместе с остальным контентом. |
чесно говоря меня больше интересует как last-modified и if-modified-sinse происходит в ssi :-\
|
ага. то есть проблема в том, что имеем "плохой" сервер, не отдающий дату и надо ему тем, или иным способом помочь. Так?
Ну, например, смотрим http://masterhost.ru/support/doc/apache/#last-modified. Читаем: Цитата:
|
меня интересует ssi
с php и html все и так понятно( |
|
возможно такое спасет отца русской демократии:
Код:
$ cat test.shtml |
mar
по твоей ссылке вводит на экран дату изменения, а мне надо в заголовках отправлять , до вывода контента archy угу этот код работает, но если так: Код:
$ cat test.shtml апач ssi сознательно глушит заголовки в оригинальных версиях апача... строка XBitHack full насильно заставляет апач их выдавать(что видно из названия), но заголовки всеравно выдаются глючно, а именно: 1) дата изменения не выдается если был принят заголовок if-modified-since 2) заголовок if-modified-since настоящее время не отрабатывается вообще, просто проглатывается и сервер ведет себя так будто его нету пфффф, вот такие пироги (( |
вот еслибы вместо
Код:
$ cat test.shtml test.shtml Код:
<?php header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); ?> |
E-mail
Вот здесь вроде подобное обсуждается, почитайте, может поможет.... |
E-mail
А расскажи ка нам друг, зачем тебе этот заголовок? Может быть есть другие варианты решения |
Подскажите плиз... файлик shtml, включаем инклудом php, апач выдает ошибку. В логах такая вот ерунда:
[Mon Nov 21 02:36:06 2005] [error] [client 127.0.0.1] (22)Invalid argument: couldn't create child process: 22: php-cgi.exe [Mon Nov 21 02:36:06 2005] [error] [client 127.0.0.1] (22)Invalid argument: couldn't spawn child process: D:/Server/PHP/php-cgi.exe На хостинге все работает. Может что надо поменять в конфиг-файле? |
Время: 12:26. |
Время: 12:26.
© OSzone.net 2001-