nginx下使用SSI
主要內容
- 什么是SSI
- nginx開啟SSI
- SSI常用命令
- SSI獲取并使用查詢參數(shù)
- 在頁面文件中獲取
- 在nginx的配置文件中設置
- 使用參數(shù)
什么是SSI
SSI:Server Side Include,是一種基于服務端的網頁制作技術。它的工作原理是:在頁面內容發(fā)送到客戶端之前,使用SSI指令將文本、圖片或代碼信息包含到網頁中。對于在多個文件中重復出現(xiàn)內容,使用SSI是一種簡便的方法,將內容存入一個包含文件中即可,不必在所有文件中重復。通過一個非常簡單的語句即可調用包含文件,此語句指示 Web 服務器將內容插入適當網頁。
nginx開啟SSI
在nginx.conf設置。三個最基本的指令:
- ssi on;
- 開啟ssi支持,默認是關閉的
- ssi_silent_errors on;
- 開啟后在處理SSI文件出錯時不輸出錯誤提示:"[an error occurred while processing the directive] "。默認是關閉的
- ssi_types text/shtml;
- 默認是text/html。如果需要shtml支持,則需要設置:ssi_types text/shtml。
這三行的配置可以放在nginx的三個作用域下面(http, server, location)。
location / {ssi on;... }更多指令可參看:nginx指令文檔
SSI常用命令
命令語法如下:
<!--# command parameter1=value1 parameter2=value2 ... -->最常用的應該是include:
<!--# include file="footer.html" --><!--# include virtual="/remote/body.php?argument=value" -->file文件名是一個相對路徑,該路徑相對于使用 #include 指令的文檔所在的目錄。被包含文件可以在同一級目錄或其子目錄中,但不能在上一級目錄中。
virtual文件名是一個web請求路徑,當然應該是本服務器上的??梢允墙^對或相對路徑,但不能通過".."訪問上層路徑。
其它命令還是看這兒吧:nginx命令文檔
SSI獲取并使用查詢參數(shù)
獲取參數(shù)有兩種方式:
- 在頁面文件中獲取;
- 在nginx的配置文件中設置。
在頁面文件中獲取
在頁面中寫如下代碼取得p1和p2參數(shù):
<!--#if expr="$QUERY_STRING = /\bp1=(?P<p1>[a-zA-Z0-9]+)/" --> <!--#endif --> <!--#if expr="$QUERY_STRING = /\bp2=(?P<p2>[a-zA-Z0-9]+)/" --> <!--#endif -->正則表達式中的"\b"用來劃分單詞的邊界?!?P<p1>”將解析出的內容賦給變量p1。
在nginx的配置文件中設置
nginx.conf中如下代碼:
location /sjjy {ssi on;...set $p3 $arg_p3; }可將url中的查詢參數(shù)p3的值賦給變量p3,供在頁面中使用。(在nginx中取url中?后面的變量的值是通過$arg_作為前綴獲取的。)
跟從頁面中獲取方式不同的是,當url中沒有參數(shù)p3時,通過在配置文件中給p3賦值,p3也有一個空字符串值;但通過頁面中代碼解析方式,會得到一個空值(none)。
使用參數(shù)
可以用echo命令輸出:
<!--#echo var="p1" -->也可以在其它命令中引用:
<!--# include file="${p2}.txt" -->總結
以上是生活随笔為你收集整理的nginx下使用SSI的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务网格峰会 Service Mesh
- 下一篇: md文档编写语法