SSI в примерах
Страница: 2
Получение года <!--#config timefmt="%G" -->
<!--#set var="YEAR" value="$DATE_LOCAL"-->
Собственно вывод получившейся строки<!--#echo var="DAY" -->, <!--#echo var="DATE" --> <!--#echo var="MONTH" -->, <!--#echo var="YEAR"-->
Форматы параметров для config timefmt надо смотреть для каждой конфигурации веб-сервера отдельно. Приведенный пример - FreeBSD, Apache.
Дата модификации внешнего файла Часто на компьютерных сайтах выкладывают прайс-лист в формате MS Excel или Word и каждый раз руками прописывают дату его изготовления. С помощью SSI это делается примерно следующим образом: <a href=pricelst.doc>Прайс-лист</a>
<!--#config timefmt="%d.%m.%y" -->
(MS Word 6.0/95, <!--#flastmod virtual="pricelst.doc" -->)
Борьба с <noframes> Как правило, в этом контейнере пишут "извините, но вам следует обновить браузер", по идее же там должны быть альтернатива для пользователей старых версий браузеров. Поскольку на нормальном сервере информация часто меняется, а вебмастеру же лениво каждый раз вносить правки в двух местах. С помощью SSI проблема решается раз и навсегда: в контейнер <noframes></noframes> вносится директива, вставляющая тот самый файл, в котором делаются правки или попросту линейку навигации.
Борьба с прямыми ссылками на документы на веб-узле с фреймами Одним из аргументов против использования фреймовых структур при создании веб-узлов является неудобство прямых ссылок на содержательные файлы. Например, при ссылке из поисковых машин или на конкретный (не корневой) документ с другого веб-узла пользователь попадает на страницу, лишенную оформления или элементов навигации, которые обычно помещаются в отдельный навигационный фрейм. С помощью нехитрой конструкции SSI эту проблему можно решить. Для этого необходимо проанализировать, откуда пришел пользователь (переменная HTTP_REFERER) Если он пришел не с нашего сервера, а извне - построить фреймовую структуру и в качестве содержательного фрейма подставить документ, запрошенный пользователем.
В примере ниже файл content.html - это тот документ, на который стоит прямая ссылка (допустим, из поисковой машины), frame.html - файл в котором строится фреймовая структура. В QUERY_STRING подставляется значение done для того, чтобы избежать бесконечной вложенности фреймовых структур.
Файл content.html <html>
<head>
...
<!--#include virtual="frame.html" -->
</head>
<body>
...
</body>
</html>
Файл frame.html <!--#if expr="$QUERY_STRING!=done && $HTTP_REFERER!=/your_domain\.ru/" -->
<frameset rows="150,*">
<frame name="NAVIGATION" src="/navigation.html">
<frame name="CONTENT" src="<!--#echo var="DOCUMENT_URI" -->?done">
</frameset>
<!--#endif -->
1 [2] 3 4 5
|