Подписка на RSS-ленту
последние обновления
новостей и публикаций сайта

Укрощение SSI

Как и полагается привожу стандартное описание технологии. Server Side Include с английского переводится как «включаемый на стороне сервера». Эта технология позволяет Web-серверу включать в текст HTML-страниц любой другой текст. Происходит это «включение» непосредственно перед передачей HTML-страницы броузеру пользователя без использования «тежелого вооружения» типа PHP и т.п.

В нашем примере использование данной технологии позволит реализовать следующую задачу: Разбить контент на отдельные блоки и их по отдельности кэшировать в http_doc директории. А сборку контента производить средствами только сервера. Не нагружая сервер интерпретатором PHP. Что даст большую нагрузочную устойчивость всему проекту. При ситуации когда необходимый включаемый блок не найден, в работу должен включаться система, которая во первых генерирует данный контент для пользователя, во вторых если это необходимо генерирует файл для кэша. И при повторном вызове данного фрагмента будут использованы ресурсы только web сервера.
На моменте «когда необходимый включаемый блок не найден» я столкнулся с проблемой: Невозможно определить подключился ли данный файл или при подключении была ошибка…

Вот выход который пришел мне на ум. (В интернете я подобного ничего не нашел)

В файле index.html Необходимо сделать «Умную вставку страницы block.html» или если его не существует страницу “index.php” которая точно есть и может помочь решить проблему.
Листинг index.html:

!--#config errmsg="" -->






А вот листинг Включаемого файла block.html


Block #1

IP – Server – Referer – Curent page – http://

Ну и пример тестового index.php

Алгоритм данной конструкции следующий:
1. Устанавливает сообщение об ошибке пустым
2. Подключаем необходимый файл
3. Если файл существует то в нем устанавливается переменная SSI_INCLUDE_STATUS в не пустое положение
4. Если существует переменная SSI_INCLUDE_STATUS то все ОК подключение было успешным
5. Иначе Подключаем файл (скрипт) index.php который с данной ситуацией разберется

Хочу отметить еще один момент генерацию данных директив обязательно нужно возложить на программу т.к. Человеческий фактор может внести серьезные ошибки в данную конструкцию.

Если кто знает другие алгоритмы, раскажите!

Отзывов (2) на

Укрощение SSI

  • temm |

    Здесь наверное главный вопрос не в SSI, а в том что с этим потом делать? Как то что вы предлагаете распространить по всему сайту? Если вы хотите использовать это только для некоторых страниц, то не проще ли их тогда генерить полностью при изменении их составляющих?

  • Валентин Гернович |

    PS в Apache 2.2. Можно обойтись и одной строчкой:
    если в .htaccess прописано перенаправление “файл не найден”.

У вас есть мнение?
Оставьте свой отзыв:

Имя *
Почта *
Вы можете использовать следующие теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>