De ce NGINX oferă alte funcționalități SSI documentate, dar nu LAST_MODIFIED în antet?
Pentru că oricum nginx nu a implementat complet SSI. Citând documentele:
În prezent, lista comenzilor SSI acceptate este incompletă.
Pentru o listă de comenzi și variabile SSI acceptate, verificați sursa nginx Aici.
Editați | ×:
Dacă se dorește suport SSI complet, încercați să utilizați Apache httpd în spatele nginx.
conform documentelor NGIX (sic) (vezi linkul din postarea mea)
Iată citatul direct din ssi_last_modified
docs circa 21 iulie 2021:
Permite conservarea Modificat ultima dată
câmp antet din răspunsul original în timpul procesării SSI pentru a facilita stocarea în cache a răspunsului.
În mod implicit, câmpul antet este eliminat deoarece conținutul răspunsului este modificat în timpul procesării și poate conține elemente sau părți generate dinamic, care sunt modificate independent de răspunsul original.
În mod implicit, atunci când răspunde la o solicitare pentru un fișier static, nginx adaugă Modificat ultima dată
Antet de răspuns HTTP.
Când utilizați SSI, nginx elimină acest antet intenționat, deoarece nginx generează pagina dinamic în loc să returneze un fișier static, prin urmare adăugarea unui Modificat ultima dată
antetul răspunsului este inutil.
ssi_last_modified
directiva re-adaugă Modificat ultima dată
Antetul răspunsului HTTP în conformitate cu marcajul temporal al fișierului script SSI.
În niciun caz nu a spus că această directivă adaugă MODIFICAT ULTIMA DATĂ
variabilă la SSI al lui nginx.
MODIFICAT ULTIMA DATĂ
ar trebui să fie susținute în continuare
AFAIK, nu există nici un standard, nici RFC-uri, pe care să se poată baza pentru a implementa complet SSI. Discutabil, docs la mod_include ar putea fi un astfel de standard, dar din nou, este doar un manual pentru alt produs. Anunțați-mă dacă există un astfel de standard și voi modifica acest răspuns.
Veți avea mai multe șanse să rezolvați această problemă trimițând o solicitare de funcție către Trac al lui nginx.
Tangenta: chiar daca este suportata, daca adaugi MODIFICAT ULTIMA DATĂ
, în cazul în care valoarea sa este marcajul de timp al scriptului SSI sau marcajul de timp al serverului; deoarece răspunsul HTML este generat din mers în loc să fie citit direct dintr-un fișier.
Acesta este pentru site-urile vechi pe care le-am mutat în NGINX de la Apache. Unele site-uri mari încă folosesc SSI și este o abordare utilă, evitând PHP etc.
Mă îndoiesc că acele site-uri mari încă mai folosesc SSI în culise. În acest moment, SSI este un cadru moștenit cu o mulțime de alternative disponibile.