Jesteś tutaj: webmade.org >> porady >> pozostałe
autor: Mateusz Pilszek, ostatnia modyfikacja: 2007-11-15
SSI (Server Side Includes) to prosty mechanizm skryptowy umożliwiający dynamiczne generowanie treści po stronie serwera WWW. Nie posiada on takich możliwości jak język PHP czy ASP.NET, ale jeżeli tworzysz prostą stronę, do której chcesz tylko dołączać zewnętrzne pliki, SSI będzie idealnym rozwiązaniem.
Nie każdy serwer obsługuje ten mechanizm domyślnie. Administrator musi odpowiednio skonfigurować serwer.
Apache HTTP Server może interpretować dyrektywy SSI dopiero po uaktywnieniu odpowiednich opcji w pliku httpd.conf lub apache2.conf. Opiszę tu konfigurację dla wersji 2.2.x działającej w systemie Windows.
Otwórz w dowolnym edytorze tekstu plik konfiguracyjny serwera – httpd.conf. Musisz odnaleźć główny katalog Apache, a w nim podkatalog conf.
Aby SSI działało poprawnie, załaduj moduł mod_include. Odnajdź linijki odpowiadające za wczytywanie modułów przy starcie serwera i usuń znak komentarza (#) na początku linii ładującej ww. moduł.
LoadModule include_module modules/mod_include.so
Do uzyskania pełnych możliwości SSI należy załadować także moduły mod_cgi i mod_expires, jednak na potrzeby includowania plików wystarczy jedynie moduł mod_include.
Teraz musisz odnaleźć sekcję odpowiadającą za ustawienia głównego katalogu serwera. Będzie ona wyglądała podobnie do poniższej:
<Directory "C:/apache/htdocs"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
Dodaj do dyrektywy Options słowo IncludesNOEXEC.
Options Indexes FollowSymLinks IncludesNOEXEC.
Następnie musisz nakazać serwerowi interpretowanie plików o rozszerzeniu .shtml. Odszukaj sekcję konfiguracyjną modułu mime_module. Będzie ona wyglądała mniej więcej tak:
<IfModule mime_module> TypesConfig conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz #AddType text/html .shtml #AddOutputFilter INCLUDES .shtml </IfModule>
Zauważ, że ostatnie dwie linijki wewnątrz bloku są zakomentowane. Musisz usunąć znak komentarza (#).
Zapisz zmiany w pliku i zrestartuj serwer Apache. Teraz SSI powinno działać.
Dyrektywy SSI umieszczamy w plikach o rozszerzeniu .shtml. Są to zwykłe pliki (X)HTML, które dodatkowo zawierają kod SSI.
Do includowania używana jest dyrektywa include z parametrem file lub virtual.
<!--#include file="przyklad.inc"-->
Dyrektywa include z parametrem file dołącza zewnętrzny plik znajdujący się w tym samym katalogu co plik .shtml. Dyrektywa include z parametrem virtual umożliwia wyznaczanie ścieżki względem głównego katalogu dokumentów serwera:
<!--#include virtual="/pliki/mojplik.inc"-->
Dyrektywy można mieszać z kodem (X)HTML. Stwórzmy prostą stronę, do której będą dodawane menu i stopka zawarte w plikach menu.inc i stopka.inc. Użyłem rozszerzenia .inc, ponieważ podkreśla ono ich przeznaczenie – nie służą one do samodzielnego uruchamiania, lecz powinny być częścią innego pliku.
<?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl"> <head> <title>Dołączanie zewnętrznego pliku!</title> </head> <body> <!--#include file="menu.inc"--> <p>Zawartość strony</p> <!--#include file="stopka.inc"--> </body> </html>
Dzięki includowaniu możesz stworzyć jeden plik, który dołączysz na 100 podstronach swojego serwisu. Zmiana zawartości tego pliku zostanie odwzorowana na wszystkich podstronach. W dołączanych plikach możesz umieścić np. nagłówek strony lub kod ankiety, wszystko zależy od Twojej pomysłowości.
Niestety, obsługę SSI znajdziemy na nielicznych serwerach hostingowych w internecie. Największy problem jest na serwerach darmowych – jedyny znany mi serwis obsługujący SSI to republika.pl.
Warto przeczytać:
Mateusz Pilszek
szukaj: SSI Server Side Includes Apache include includowanie mod_include
Osoby czytające tę publikację przeglądały również:
© 2004-2008 copyright by webmade.org