Despre SSI
Serverul Apache poate implementa mai multe mecanisme pentru a genera conținut dinamic. Luați în considerare una dintre metodele cele mai simple - inserați sau SSI (Server Side Includes, incluziuni de pe server).
Esența tehnologiei - pagina adaugă cele mai simple instrucțiuni care, atunci când solicitați această pagină, sunt executate. Această tehnologie nu este un limbaj de programare, setul de instrucțiuni este foarte mică, dar instrucțiunile în sine sunt foarte simple și se referă în principal la retragerea anumitor valori, programe terțe care fac escală în transmiterea documentului și se adaugă la conținutul documentului la alte documente.
Trebuie remarcat faptul că SSI este un mecanism pentru adăugarea de conținuturi dinamice de conținut limitat la paginile web. În conformitate cu această metodă, unele sau întregul conținut disponibil pe server este etichetat ca având potențial conținutul codului SSI inclus în codul HTML. Când reparați pagini serverul Apache îl scanează mai întâi pentru prezența instrucțiunilor SSI și a modificărilor în conformitate cu instrucțiunile detectate la rezultatul transmis browser-ul utilizatorului. Suport pentru această tehnologie este inclus în Apache, dar este dezactivat de manipulare implicit și principalul motiv este scăderea performanței, deoarece serverul este forțat să vizualizați tot conținutul transmis, sau cel puțin o parte din conținutul transmis, ceea ce duce în mod natural la o creștere a sarcinii, în comparație cu un randament simplu pagini către utilizator. Din același motiv, când activați procesarea, este recomandat să limitați acțiunea SSI la cât mai puține directoare și / sau fișiere posibil. Tehnologia SSI în arhitectura de Apache modul de web-server este implementat «mod_include», procesarea oricărui document pentru care este specificat în configurația handler «server» parsată. De asemenea, orice instrument care are un tip MIME text / x-server-parsate-html sau text / parsate x-server-HTMLs vor fi analizate de către modulul datorită considerentelor de compatibilitate. În plus, puteți specifica cu forța un "filtru" pentru ieșirea fișierelor de un anumit tip.
Pentru a permite utilizarea SSI, se folosește directiva "Opțiuni + Include" sau pentru o metodă puțin mai sigură de a activa acest mod și de a exclude lansarea de scripturi: "Opțiuni + IncludeNOEXEC".
Pentru a permite procesarea instrucțiunilor SSI pentru toate fișierele cu extensia html, trebuie să specificați următoarele instrucțiuni:
Puteți specifica aceste instrucțiuni atât în fișierul de configurare global al serverului web (httpd.conf), cât și în fișierul .htaccess situat într-un anumit director.
Din motive de eficiență, este necesară împărțirea paginilor utilizând și fără construcții SSI, aceasta putând fi implementată în două moduri:
- Selectați un director separat pentru fișiere care au SSI. Domeniul de aplicare al directivei poate fi limitat de o pereche de directive privind localizarea sau de direcții direcționate sau prin plasarea acesteia într-un fișier .htaccess aflat în acest director. De exemplu:
Directiva în a doua opțiune spune serverul că fișierele cu extensia shtml corespund tip MIME text / html, și că, înainte de transferul de astfel de fișiere care au nevoie să „treacă prin filtru“, care se va ocupa de SSI-instrucțiuni. Desigur, utilizați extensia. shtml este opțional, dar această metodă este cea mai tradițională.
Singura directivă pentru mod_include este directiva XBitCrack. Dacă este activat, aceasta va însemna că serverul va trata numai documentele SSI ca acele fișiere care au bitul "executiv" setat în sistemul de fișiere.
În plus față de valorile off și on, directiva XBitCrack are opțiunea completă, care determină serverul să introducă antetul Ultima modificare atunci când fișierul este transferat. Aceasta permite serverului proxy să cacheze.
Am înțeles principiile SSI, conexiunea de procesare și modalitățile de a specifica ce fișiere să proceseze, acum trebuie să vă gândiți la ce să procesăm - comenzile utilizate în tehnologia SSI.
Comenzi SSI
Instrucțiunile SSI sunt:
Aici, un element este o comandă, urmată de atribute și valorile lor, dacă există.
Comanda ecou
Comanda ecou este folosită pentru a afișa valoarea variabilei de mediu. Parametrul var este obligatoriu și trebuie să conțină numele variabilei de ieșire.
Comanda include
Folosit pentru a introduce un alt document în document.
Fișierul care va fi atașat documentului este specificat în valoarea unuia dintre cele două atribute posibile: fișier sau virtual. Diferența lor este că valoarea fișierului trebuie să fie calea spre fișierul dosarului curent relativ (de exemplu: '../../files/somefile.html'). Valoarea atributului virtual poate conține o adresă URL cu o singură restricție - această adresă URL trebuie să aparțină aceluiași server pe care se află documentul care urmează să fie inserat.
Este foarte convenabil să utilizați această comandă pentru a organiza site-ul. Puteți selecta părți neschimbate ale paginilor (titlu, meniu, pivniță) în fișiere separate și le puteți conecta mereu la pagini noi.
Comanda flastmod
Comanda este destinată pentru afișarea datei-oră a ultimei modificări a fișierului.
Ieșirea acestei comenzi poate fi configurată utilizând comanda config, schimbând valoarea timefmt.
Comanda Printenv
Această comandă este destinată afișării simultan a tuturor variabilelor de mediu, care este un moment convenabil pentru depanare.
Ramificație cu SSI
SSI permite ramificarea. De fapt, procesul reduce la faptul că, în funcție de condiție, unele părți ale documentului sunt ieșite, iar unele nu sunt generate. Aplicați dacă, elif, altceva, endif.
O condiție este o expresie logică, o comparație sau o validare.
Condițiile pot fi foarte complicate. Mai multe detalii despre acestea pot fi găsite pe pagina de documentare oficială.
Comanda de configurare
Această comandă controlează diferiți parametri de ieșire și parsare.
errmsg Valoarea este un mesaj care va fi trimis către browser-ul clientului dacă apare o eroare în timpul parsării documentului. sizefmt Valoarea stabilește formatul de ieșire pentru dimensiunea fișierului (octeți sau abrevierea care va fi transmisă pentru a indica mai multe unități, de exemplu "1K" sau "2Mb" timefmt Valoarea este formatul de ieșire a datei
Creați un șablon de site conform schemei: