偽靜態(tài)除了吃IIS連接數(shù) 和操作不慎帶來的SEO降權,其它的滿滿是優(yōu)點。
偽靜態(tài)不同的web服務器不同的構架方式都會帶來小問題,當然這些問題的發(fā)生大多數(shù)據(jù)都是因為偽靜態(tài)的規(guī)則寫得不夠正規(guī),有錯誤規(guī)則存在。
最近發(fā)現(xiàn) ISAPI_Rewrite3_0089_Lite.msi這種安裝版的偽靜態(tài)容錯特別高,就算一些書寫錯誤的偽靜態(tài),最樣能穩(wěn)定運行。一旦要把這種偽靜態(tài)網(wǎng)站遷移到 Rewrite.dll偽靜態(tài)環(huán)境中,就會出現(xiàn)錯誤。
經(jīng)過不斷的嘗試,主要的錯誤就在于偽靜態(tài)目錄 和變量順序。
RewriteRule ^(.*)/index.html$ /index.asp
RewriteRule /about([0-9]+).html /about.asp\?id=$1
如,ISAPI_Rewrite3_0089_Lite.msi偽靜態(tài),只要首頁目錄前加了東西,從首頁鏈接到其它同層頁,就會自動擁有,不需要再加上^(.*) ,但移值到.dll的偽靜態(tài)中,就得一個個都加上^(.*)。
ISAPI_Rewrite3_0089_Lite.msi偽靜態(tài)中^(.*)目錄不算變量,但在.dll的偽靜態(tài)中,^(.*)就算是一個變量。
RewriteRule /about([0-9]+).html /about.asp\?id=$1 這個就得修改成:RewriteRule ^(.*)/about([0-9]+).html /about.asp\?id=$2 才能正常運行。應該^(.*)也是一個變量。