国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > IIS > 正文

真正可用的IIS的ISAPI-Rewrite偽靜態URL圖片防盜鏈規則寫法

2024-08-29 03:15:28
字體:
來源:轉載
供稿:網友
網站程序的URL偽裝法、服務器端的收費插件法和ISAPI-REWRITE的規則過濾法等,考慮自身網站結構和錢包的困難問題,最終選擇了后者,即現在流行用來做偽靜態的ISAPI Rewrite書寫規則來實現
經測試四種情況正常,即站內鏈接正常,白名單里的鏈接正常,盜鏈者鏈接屏蔽,搜索引擎鏈接正常。

詳細如下;

一、完全屏蔽所有盜鏈來源的寫法(如已有其它規則,則置于已有規則的上面)

復制代碼 代碼如下:


RewriteCond Host: (.+)
RewriteCond Referer: (?!/1.*).*
RewriteRule .*/.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]


RewriteCond Host: (.+)
RewriteCond Referer: (?!/1.*).*
RewriteRule .*/.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]



第一行通過RewriteCond的HOST定義其下的規則所適用的請求主機范圍。
第二行通過RewriteCond的Referer定義規則適用的請求來源地址,我們都知道任何通過互聯網方式訪問網站都會留下Referer的痕跡,就好像我們在IIS日志里看到的一樣。這里的(?!/1.*).*意思就是判斷所有通過http協義發來的請求,都要應用規則。
第三行通過RewriteRule定義防盜鏈文件的后綴,這里僅是圖片后綴,需要的可以添加mp3,rar等其它所有后綴。后面的/block.gif表示如果遇上這些后綴的文件被盜鏈后的轉向,這里轉向/根目錄的block.gif,可以是HTML等任何文件。如果只想某個文件夾下面的文件不被盜鏈,只需要加上路徑就可以。例如不想images和pic目錄下的文件被盜,但其它可以。就要改寫成:
RewriteRule (/images/|/pic/).*/.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]
這種情況主要是有些站長在別人友情鏈接里的圖片地址是在自己這的。
最后面的[I,O,N],I表示不區分大小寫,O表示對URL進行標準化,可能是用來處理Unicode編碼的地址(例如包含中文的URL)以及QueryString的內容,N表示重新從站點請求文件而不是從本地緩存讀取文件,目的是防止當用戶訪問了盜你鏈的網站后,再回到你的網站也出現盜鏈提示。
提示,由于此規則是通過Referer來獲取帶有字樣的地址進行過濾,因此它無法防范其它協議的盜鏈,比如迅雷下載。但通過任何瀏覽器直接訪問,只要是HTTP協義的,通殺。
以上關于RewriteCond和RewriteRule的作用僅是本人的土法理解,歡迎在這方面有專業研究的朋友在評論中指正,以免誤導,另外如果遇到isapi-rewrite版本問題,只要保證后面的正則式寫法正確就行。

二、排除性防盜鏈寫法

復制代碼 代碼如下:


RewriteCond Host: (.+)
RewriteCond Referer: (?!/1.*).*
RewriteCond Referer: (?!(.*)(/.baidu/.com|/.google/.com|/.google/.cn|/.g/.cn|/.gougou/.com|/.soso/.com|/.sogou/.com|/.youdao/.com|/.bing/.com|/.yahoo/.com|/.yahoo/.cn|/.eojoo/.com)).*
RewriteRule .*/.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]
RewriteCond Host: (.+)
RewriteCond Referer: (?!/1.*).*
RewriteCond Referer: (?!(.*)(/.baidu/.com|/.google/.com|/.google/.cn|/.g/.cn|/.gougou/.com|/.soso/.com|/.sogou/.com|/.youdao/.com|/.bing/.com|/.yahoo/.com|/.yahoo/.cn|/.eojoo/.com)).*
RewriteRule .*/.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]



第一行同上
第二行同上
第三行通過正則表達式對第二行中的請求協義地址進行過濾,這里按上面的寫法,過濾了所有流行的搜索引擎,當然也包括你自己的站,或是你同臺服務器其它的站。每個不同的域名寫法是/.baidu/.com,多個有|號相隔。如果是IP則這樣寫100/.100/.100/.100
第四行同上
這樣說明應該不難理解吧,直接拿去用,按著原有格式改。
規則中出現的正則表達式符號小解:
. 表示匹配除換行符以外的任意字符
+ 表示前面的字符可以出現一到任意多次
* 表示前面的字符可以出現零到任意多次
() 表示一個表達組,可以拿它和加減乘除法一起理解
?! 表示斷言這個符號后面的字符如果出現則不再進行接下去的匹配
/ 表示轉義符號,比如網址中的.是規則內置的運算符號,要把它通過/轉義成字符。
| 表示或者,用于連接多種可能
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒲城县| 当雄县| 通许县| 达尔| 祁阳县| 武宁县| 丰台区| 翁源县| 左权县| 昭觉县| 建平县| 安阳市| 光泽县| 新泰市| 潼南县| 紫金县| 来凤县| 沅陵县| 原平市| 广安市| 宁强县| 平阳县| 萨迦县| 常熟市| 和政县| 广丰县| 富平县| 布尔津县| 永仁县| 神木县| 剑川县| 曲靖市| 龙游县| 龙门县| 仙游县| 鄂尔多斯市| 远安县| 威信县| 台江县| 鄂托克前旗| 德保县|