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