Server Side Includes (SSI)
Server Side Includes (SSI)
1. Що таке SSI?
SSI (Server Side Includes) - технологія, яка дозволяє "збирати" веб-сторінки з частин, вставляти в них результати виконання CGI-скриптів і надавати сторінкам інші елементи динаміки.
2. Які файли обрабляються як SSI, як додати свої файли.
За замовчуванням веб-сервер перевіряє на предмет наявності SSI-інструкцій тільки файли з розширенням shtml. Наприклад, якщо помістите SSI-інструкції в файл index.shtml і вони відразу запрацюють. Якщо є необхідність перевіряти на наявність SSI-інструкцій інші файли, то відповідні розширення для перевірки можна добавити в файл .htaccess наступною дериктивою:
AddHandler server-parsed .ext1
.ext1 - це показове розширення файлу. Саме файли такого розширення перевірятиме веб-сервер на наявність SSI-інструкцій. Не рекомендуємо перевіряти html-файли, оскільки це створить велике навантаження на сервер.
3. Як працює SSI і для чого його використовують.
Початківці технологію SSI в основному можуть використовувати в двух цілях: для "збирання" сторінки з частин html-кода і розміщення на html-сторінці результату запущеного скрипту. В першому випадку з диску просто читаються шматки коду і вставляються у потрібне місце, у другому - знайшовши таку інструкцію, веб-сервер запускає скрипт, який розміщений на диску, і вставляє кінцевий результат в html-сторінку.
Розглянемо це детальніше:
"Збираєте" сторінка з частин html-кода для того, щоб не дублювати постійно один і той самий фрагмент коду. Наприклад, можна винести дизайн сайту в окремий файл і включати його за допомогою SSI до всіх інших сторінок. Тоді, коли вам потрібно буде змінити дизайн, доведеться змінити його лише в одному файлі.
Помістимо в файл header.inc "заголовок" веб-сторінки (елементи дизайну, меню, потрібні посилання тощо), а в файл footer.inc помістимо нижню частину веб-сторінки (зазвичай дата розробки ресурсу і його автор). Далі створимо файл з іменем index.shtml наступного вигляду:
<!--#include file="header.inc"-->
Тут ви розміщуєте якийсь текст
<!--#include file="footer.inc"-->;
Мається на увазі, що в html-код ми помістимо початкові і кінцеві теги: ,
, тощо. В результаті користувач отримає одну сторінку, яка складатиметься з двох наших шаблонів і тексту.Розглянемо запуск скриптів і вивід їхнього результату на html-сторінці. Наприклад у вас є скрипт-лічильник, який рахує відвідувачів ресурсу і знаходиться він за адресою /cgi-bin/count.pl. Включимо результат роботи скрипта у веб-сторінку. Для цього в коді html-сторінки розмістимо такий SSI-код:
<!--#include virtual="/cgi-bin/count.pl"-->
В результаті на сторінці буде виведений лічильник, який є виводом скрипта /cgi-bin/count.pl.
4. Помилки при використанні SSI.
Якщо при використанні SSI-команд на своїх html-сторінках ви побачили повідомлення "[anerror occured while processing this directive]", це свідчить про виникнення помилки при обробці SSI-інструкції веб-сервером.
Найбільш ймовірні причини виникнення помилки:
- невірно вказаний шлях до файлу, тобто вказаного файлу не існує
- невірно працює скрипт, результат виконання якого ви хочете вставити