Apache: SSI all'interno di SSI
-
19-08-2019 - |
Domanda
Esiste un modo in cui posso includere i file di inclusione all'interno dei file di inclusione? (Dillo cinque volte in fretta!)
Ad esempio:
All'interno di index.html :
<!--#include virtual="/include-1.shtml"-->
All'interno di include1.shtml :
<!--#include virtual="/include-2.shtml"-->
Quindi l'albero appare così: index.html < - include_1.shtml < - include_2.shtml
Così com'è, questo non funziona sul mio Apache. La prima inclusione funziona bene, ma il contenuto per l'inclusione nidificata non viene visualizzato.
Dato che è pertinente, sto usando XBitHack su Apache 2 e ho ricontrollato che entrambi i file sono eseguibili dall'utente web.
Aiuto?
Soluzione
Assicurati che Apache stia effettivamente tentando di elaborare i file * .shtml. Prova a mettere
<!--#echo var="DATE_LOCAL" -->
in un file * .shtml e vedendo se ottieni i risultati previsti. Ottieni lo stesso risultato in un file * .html? Se non vedi le date in entrambi, la configurazione è disattivata.
Altri suggerimenti
So che questa domanda ha più di quattro anni, ma a beneficio di persone che, come me, la trovano grazie al fantastico fantastico motore di ricerca di StackOverflow, ecco come l'ho fatta funzionare.
In Apache2, devi sapere questo .
Testo pertinente:
Questo comando inserisce il testo del file incluso nel file analizzato. I file SSI possono essere nidificati, ovvero il file incluso può contenere istruzioni SSI aggiuntive (ma in questo caso deve avere un suffisso .shtml indipendentemente dall'impostazione di XBitHack) .
(Il mio enfasi) Per me, la soluzione consisteva nel rimescolare due righe nell'impostazione predefinita httpd.conf
:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
& # 8230; e cambiando l'estensione del file incluso di primo livello in .shtml:
index.html └─┬─ include1.shtml └─── include2.html
Boom! La SSI nidificata funziona come un campione.