利用isapi_rewrite可以實現類似于Apache的偽靜態路徑,利用其檢查refer的功能我們還可以實現防盜鏈。該軟件可以在 http://www.helicontech.com/download/下載,是一個共享軟件,但是有一個LITE版本是免費的,基本上可以實現我們需要的功能。安裝的步驟我就不詳細說了,具體說說httpd.ini的設置。
首先,必須要保證httpd.ini有可寫權限,設置isapi_rewrite安裝文件夾everyone具有可修改權限后,去除該文件的只讀屬性。
httpd.ini默認設置如下:
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://1.*).*
我們在它后面加上一句
RewriteRule .*.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O]
即可實現gif/jpg/png/exe/rar/zip文件的防盜鏈,盜鏈頁面顯示的是/block.gif。block.gif是一個體積較少的圖片文件,我們可以在上面打上自己網站的版權標志和防盜鏈聲明。
如果按照上面設置,則除本站以外的所有網站均不能使用這里的圖片,如果要允許一些例外的網站比如google,baidu以及其它一些非營利性網站引用該怎么辦呢?我們可以用如下正則表達式來實現
RewriteCond Referer: (?!http://(?:www.liehuo.net|www.google.com|www.baidu.com)).+
如果想允許所有google子站和baidu子站形如images.baidu.com,images.google.com等站則做如下設置:
RewriteCond Referer: (?!http://(?:*.liehuo.net|*.google.com|*.baidu.com)).+
至此,一個相當有效的防盜鏈系統已經出來了,但如上設置有一個問題,如果瀏覽者瀏覽了盜鏈頁面后訪問本站頁面,則被盜鏈圖片的緩存會影響圖片的正常顯示。把
RewriteRule .*.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O]
改為
RewriteRule .*.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O,N]
方可。參數N的意思是重新從站點請求文件而不是從本地緩存讀取。