欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

php語(yǔ)言

apache服務(wù)器偽靜態(tài)教程

時(shí)間:2025-05-13 22:34:33 php語(yǔ)言 我要投稿
  • 相關(guān)推薦

apache服務(wù)器偽靜態(tài)教程

  導(dǎo)語(yǔ):雖然網(wǎng)上有很多教程,不過(guò)發(fā)現(xiàn)大部分都是抄襲一個(gè)人的,一點(diǎn)都不全,所以小編寫(xiě)了一個(gè)簡(jiǎn)單的易于理解的教程,歡迎參考!

  我學(xué)習(xí).htaccess是從目錄保護(hù)開(kāi)始的,這個(gè)也比較簡(jiǎn)單,網(wǎng)上也有一些編輯器可以選擇,這兒就不說(shuō)了,教程從綁定域名到子目錄開(kāi)始,網(wǎng)上也有教程,大部分都是抄襲一個(gè)人的,我在這兒解說(shuō)一下,教程寫(xiě)法是這樣的:

  RewriteEngineOn

  RewriteCond%{HTTP_HOST}^(www.)?xxx.com$

  RewriteCond%{REQUEST_URI}!^/blog/

  RewriteCond%{REQUEST_FILENAME}!-f

  RewriteCond%{REQUEST_FILENAME}!-d

  RewriteRule^(.*)$/blog/$1

  #沒(méi)有輸入文件名的默認(rèn)到到首頁(yè)

  RewriteCond%{HTTP_HOST}^(www.)?xxx.com$

  RewriteRule^(/)?$blog/index.php[L]

  下面我開(kāi)始解說(shuō)一下上面的意思:

  【RewriteEngineOn】表示重寫(xiě)引擎開(kāi),關(guān)閉off,作用就是方便的開(kāi)啟或關(guān)閉以下的語(yǔ)句,這樣就不需要一條一條的注釋語(yǔ)句了。

  【RewriteCond%{HTTP_HOST}^(www.)?xxx.com$】

  這是重寫(xiě)條件,前面%{HTTP_HOST}表示當(dāng)前訪問(wèn)的網(wǎng)址,只是指前綴部分,格式是www.xxx.com不包括“http://”和“/”,^表示字符串開(kāi)始,$表示字符串結(jié)尾,.表示轉(zhuǎn)義的.,如果不轉(zhuǎn)義也行,推薦轉(zhuǎn)義,防止有些服務(wù)器不支持,?表示前面括號(hào)www.出現(xiàn)0次或1次,這句規(guī)則的意思就是如果訪問(wèn)的網(wǎng)址是xxx.com或者www.xxx.com就執(zhí)行以下的語(yǔ)句,不符合就跳過(guò)。

  【RewriteCond%{REQUEST_URI}!^/blog/】

  也是重寫(xiě)條件,%{REQUEST_URI}表示訪問(wèn)的相對(duì)地址,就是相對(duì)根目錄的地址,就是域名/后面的成分,格式上包括最前面的“/”,!表示非,這句語(yǔ)句表示訪問(wèn)的地址不以/blog/開(kāi)頭,只是開(kāi)頭^,沒(méi)有結(jié)尾$

  【RewriteCond%{REQUEST_FILENAME}!-f】

  【RewriteCond%{REQUEST_FILENAME}!-d】

  這兩句語(yǔ)句的意思是請(qǐng)求的文件或路徑是不存在的,如果文件或路徑存在將返回已經(jīng)存在的文件或路徑

  【RewriteRule^(.*)$/blog/$1】重寫(xiě)規(guī)則,最重要的部分,意思是當(dāng)上面的RewriteCond條件都滿足的時(shí)候,將會(huì)執(zhí)行此重寫(xiě)規(guī)則,^(.*)$是一個(gè)正則表達(dá)的匹配,匹配的是當(dāng)前請(qǐng)求的URL,^(.*)$意思是匹配當(dāng)前URL任意字符,.表示任意單個(gè)字符,*表示匹配0次或N次(N>0),后面/blog/$1是重寫(xiě)成分,意思是將前面匹配的字符重寫(xiě)成/blog/$1,這個(gè)$1表示反向匹配,引用的是前面第一個(gè)圓括號(hào)的成分,即^(.*)$中的.*,其實(shí)這兒將會(huì)出現(xiàn)一個(gè)問(wèn)題,后面討論。

  【RewriteCond%{HTTP_HOST}^(www.)?xxx.com$】

  【RewriteRule^(/)?$blog/index.php[L]】

  這兩句的意思是指請(qǐng)求的host地址是www.xxx.com是,如果地址的結(jié)尾只有0個(gè)或者1個(gè)“/”時(shí),將會(huì)重寫(xiě)到子目錄下的主頁(yè),我猜想這主要因?yàn)橹貙?xiě)后的地址是不能自動(dòng)尋找主頁(yè)的,需要自己指定。

  現(xiàn)在說(shuō)說(shuō)出現(xiàn)的問(wèn)題,RewriteRule^(.*)$/blog/$1前部分^(.*)$將會(huì)匹配當(dāng)前請(qǐng)求的url,例如:請(qǐng)求網(wǎng)址是http://www.xxx.com/a.html,到底是匹配整個(gè)http://www.xxx.com/a.html,還是只匹配/a.html即反斜杠后面的成分,還是只匹配a.html。

  答案是:根據(jù)RewriteBase規(guī)則規(guī)定,如果rewritebase為/,將會(huì)匹配a.html,不帶前面的反斜杠,所以上條語(yǔ)句應(yīng)該寫(xiě)成RewriteRule^(.*)$blog/$1(不帶/),不過(guò)實(shí)際應(yīng)用上帶上前面的反斜杠,也可以用,可能帶不帶都行。現(xiàn)在問(wèn)題出來(lái)了,如果不設(shè)置rewritebase為/,將會(huì)匹配整個(gè)網(wǎng)址http://www.xxx.com/a.html,顯然這是錯(cuò)誤的,所以應(yīng)該添加這條:

  RewiteBase/

  還有一個(gè)問(wèn)題是,不能保證每個(gè)人輸入的網(wǎng)址都是小寫(xiě)的,如果輸入大寫(xiě)的呢,linux系統(tǒng)是區(qū)分大小寫(xiě)的,所以應(yīng)該在RewriteCond后添加[NC]忽略大小寫(xiě)的。

  至此,完整的語(yǔ)句應(yīng)該是:

  ####start####

  RewriteEngineOn

  RewiteBase/

  RewriteCond%{HTTP_HOST}^(www.)?xxx.com$[NC]

  RewriteCond%{REQUEST_URI}!^/blog/

  RewriteCond%{REQUEST_FILENAME}!-f

  RewriteCond%{REQUEST_FILENAME}!-d

  RewriteRule^(.*)$blog/$1

  #沒(méi)有輸入文件名的默認(rèn)到到首頁(yè)

  RewriteCond%{HTTP_HOST}^(www.)?xxx.com$[NC]

  RewriteRule^(/)?$blog/index.php[L]


【apache服務(wù)器偽靜態(tài)教程】相關(guān)文章:

php的apache偽靜態(tài)09-28

PHP偽靜態(tài)的方法10-26

php簡(jiǎn)單偽靜態(tài)實(shí)例09-16

PHP偽靜態(tài)的幾種方法06-01

php實(shí)現(xiàn)偽靜態(tài)的方法實(shí)例09-25

PHP簡(jiǎn)單的偽靜態(tài)URL機(jī)制實(shí)現(xiàn)09-02

Java UrlRewriter偽靜態(tài)技術(shù)運(yùn)用分析10-28

php生成靜態(tài)頁(yè)面的詳細(xì)教程10-15

Linux新手入門(mén)WEB服務(wù)器教程08-31