日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

nginx下使用SSI

發(fā)布時(shí)間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx下使用SSI 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

主要內(nèi)容

    • 什么是SSI
    • nginx開啟SSI
    • SSI常用命令
    • SSI獲取并使用查詢參數(shù)
      • 在頁(yè)面文件中獲取
      • 在nginx的配置文件中設(shè)置
      • 使用參數(shù)

什么是SSI

SSI:Server Side Include,是一種基于服務(wù)端的網(wǎng)頁(yè)制作技術(shù)。它的工作原理是:在頁(yè)面內(nèi)容發(fā)送到客戶端之前,使用SSI指令將文本、圖片或代碼信息包含到網(wǎng)頁(yè)中。對(duì)于在多個(gè)文件中重復(fù)出現(xiàn)內(nèi)容,使用SSI是一種簡(jiǎn)便的方法,將內(nèi)容存入一個(gè)包含文件中即可,不必在所有文件中重復(fù)。通過(guò)一個(gè)非常簡(jiǎn)單的語(yǔ)句即可調(diào)用包含文件,此語(yǔ)句指示 Web 服務(wù)器將內(nèi)容插入適當(dāng)網(wǎng)頁(yè)。

nginx開啟SSI

在nginx.conf設(shè)置。三個(gè)最基本的指令:

  • ssi on;
    • 開啟ssi支持,默認(rèn)是關(guān)閉的
  • ssi_silent_errors on;
    • 開啟后在處理SSI文件出錯(cuò)時(shí)不輸出錯(cuò)誤提示:"[an error occurred while processing the directive] "。默認(rèn)是關(guān)閉的
  • ssi_types text/shtml;
    • 默認(rèn)是text/html。如果需要shtml支持,則需要設(shè)置:ssi_types text/shtml。

這三行的配置可以放在nginx的三個(gè)作用域下面(http, server, location)。

location / {ssi on;... }

更多指令可參看:nginx指令文檔

SSI常用命令

命令語(yǔ)法如下:

<!--# command parameter1=value1 parameter2=value2 ... -->

最常用的應(yīng)該是include:

<!--# include file="footer.html" --><!--# include virtual="/remote/body.php?argument=value" -->

file文件名是一個(gè)相對(duì)路徑,該路徑相對(duì)于使用 #include 指令的文檔所在的目錄。被包含文件可以在同一級(jí)目錄或其子目錄中,但不能在上一級(jí)目錄中。

virtual文件名是一個(gè)web請(qǐng)求路徑,當(dāng)然應(yīng)該是本服務(wù)器上的。可以是絕對(duì)或相對(duì)路徑,但不能通過(guò)".."訪問(wèn)上層路徑。

其它命令還是看這兒吧:nginx命令文檔

SSI獲取并使用查詢參數(shù)

獲取參數(shù)有兩種方式:

  • 在頁(yè)面文件中獲取;
  • 在nginx的配置文件中設(shè)置。

在頁(yè)面文件中獲取

在頁(yè)面中寫如下代碼取得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 -->

正則表達(dá)式中的"\b"用來(lái)劃分單詞的邊界。“?P<p1>”將解析出的內(nèi)容賦給變量p1。

在nginx的配置文件中設(shè)置

nginx.conf中如下代碼:

location /sjjy {ssi on;...set $p3 $arg_p3; }

可將url中的查詢參數(shù)p3的值賦給變量p3,供在頁(yè)面中使用。(在nginx中取url中?后面的變量的值是通過(guò)$arg_作為前綴獲取的。)

跟從頁(yè)面中獲取方式不同的是,當(dāng)url中沒(méi)有參數(shù)p3時(shí),通過(guò)在配置文件中給p3賦值,p3也有一個(gè)空字符串值;但通過(guò)頁(yè)面中代碼解析方式,會(huì)得到一個(gè)空值(none)。

使用參數(shù)

可以用echo命令輸出:

<!--#echo var="p1" -->

也可以在其它命令中引用:

<!--# include file="${p2}.txt" -->

總結(jié)

以上是生活随笔為你收集整理的nginx下使用SSI的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。