因為網站的關系,不得不把服務器加上防盜鏈,以前在Apache上的時候很省力,apache的規則直接可以Referer就可以防盜鏈,現在當然我是在X86的IIS6.0上,上面那一套沒用了,早聽聞ISAPI_Rewrite的名氣,但無奈是收費的,這些額外開支能省就省吧~我可不是大戶囧,而我又是很懶的,不願意花太多時間改ASP的生成Html的模塊上,本來程序就已經被我這改改那改改的了。結合上面情況,最後還是選擇了偽htm,url重寫技術。下面是一些我自己服務器上寫的規則,應該能滿足常用的了。看了英文的ISAPI_Rewrite,覺得還是很有用的,中文的就算了。搜索ISAPI_Rewrite規則,第一頁所有的文章都一樣orz…
[ISAPI_Rewrite]
#偽Html部份
RewriteRule /article_([0-9,a-z]*).Html /article.ASP\?id=$1
RewriteRule /default([0-9,a-z]*).Html /default.ASP\?$1
RewriteRule /default_([0-9,a-z]*).Html /default.ASP\?cateID=$1
RewriteRule /default.Html /default.ASP
#防盜鏈部分
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteCond Referer: (?!http://(?:.*\.kenvi\.cn|kenvi\.cn|.*\.google\.com|google.com|.*\.baidu\.com|baidu\.com)).+
RewriteRule .*\.(?:gif|jpg|png|exe|rar|zip|torrent|bmp|pdf) /badlink.png [I,O,N]
#結束
只有兩個文件:
ISAPI_Rewrite.dll (加載於欲防站點,需重啟IIS)
http.ini (存放在ISAPI_Rewrite.dll的同級目錄,修改保存後實時生效。)
解釋
第一行:將article.ASP?id=1 轉為使用article_1.Html來訪問
第二行:這個就是典型的單參數例子,多參數例子就是第一行羅,如果title不是中文就把 .* 換成 \d+
第三行:這個就是典型的無參數例子
第四行:這個還是典型的無參數例子 ^_^
第五行:空白
第六行:注釋
如果需要防盜鏈,第七行第八行照抄
第九行:設置友情站點,這些站點可以訪問網站上的資源。“.*\.google\.com”.* 是代表任意前綴。
第十行:設置受限文件格式, [I,O,N] 後面的 N 用來防止防問了盜鏈者網站後將badlink.png 緩存下來(再訪問你的站點使用緩存的badlink.png 就不雅觀啦)