IIRF免費開源的URL偽靜態重寫外掛程式

來源:互聯網
上載者:User

正 文:

   這2天,一直在找ISAPI_Rewrite的破解版本,用了2.9版本的,用了3.1的破解版本的,結果全是掛羊頭賣狗肉,都不是真正破解的,只能通過通用檔案httpd.conf來配置,但這會影響伺服器上的其他網站。SO飄易經過一陣尋覓,終於找到了代替ISAPI_Rewrite的工具:IIRF 。

 

 

    IIRF是Ionic出品的ISAPI Rewriting Filter,專門為IIS服務的URL重寫外掛程式,完全開源,完全免費。拋棄ISAPI_Rewrite的99美元費用吧。真正可用,這下IIS下的所有的偽靜態、次層網域泛解析全部搞定。

 

    首先,到官方網站 http://iirf.codeplex.com/ 下載最新版本的 IIRF,飄易看到的最新的版本是 IonicIsapiRewriter-2.1.1.23-Release-Win32-bin.zip 。

 

一、安裝方法:
1、把 bin 目錄下的檔案全部拷貝到 D:\rewrite ,目錄你可以自訂。

2、如果你建立一個伺服器全域範圍的設定檔案(IirfGlobal.ini),你必須把它與(IIRF.dll)檔案在同一目錄中。 該URL Rewrite篩選器將尋找其在該檔案中的全域設定檔案。
3、對(IIRF.dll)檔案賦予 IIS_WPG使用者組“讀取”、“讀取與運行”、“寫入”許可權。

4、 開啟Internet資訊服務管理器。
右鍵點擊IIS管理器左欄“網站” 》“屬性”,彈出“網站屬性”選項卡,選擇“ISAPI篩選器”,如添加IIRF。

5、重啟IIS

6、右鍵點擊IIS管理器左欄“網站” 》“屬性”,彈出“網站屬性”選項卡,選擇“ISAPI篩選器”,查看“IIRF”載入是否成功。若是綠色向上箭頭,則表示載入成功。(提示,IIS重啟後,人工訪問一下該網站,不然無法觸發,也就載入不成功)

 

二、規則檔案格式基本和Apache的 mod_rewrite、ISAPI Rewrite一樣
IIRF是參照Apache的 mod_rewrite 模組改寫而來,所以大部分規則和mod_rewrite一樣。略有區別,部分區別如下:
IIRF不支援這些修飾符 [C]、[co]、[E]、[N]、[NE]、[NI]、[NS]、[PT]、[S]、[T]
支援[I](作為[NC]的別名)

 

規則檔案可隨時修改,隨時生效!

 

三、日誌設定
在IIRF中日誌值可以設定為0-5,在規則檔案的開頭部分有兩行設定日誌類型:

 

RewriteLog   C:\Rewrite\supesite\iirfLog.out (注意要寫清楚路徑,各網站不同) 
RewriteLogLevel 0   (0為不記錄,3為一般測試,5為處理故障)

 

日誌的代價高昂,同時不會自動刪除檔案,日誌類型一定要設成0,除非用於檢查才能修改為其他值,檢查完後一定要改為0,否則記錄檔把硬碟佔滿就麻煩了。如果日誌不為0,篩選器起用後,對應檔案夾會產生類似以下的檔案,是文字格式設定的,可以用記事本查看。(via:沒有ISAPI Rewrite FULL照樣玩多網站URL Rewrite偽靜態:Ionic’s Isapi Rewrite Filter (IIRF,偽靜態URL重寫篩選器)的安裝與配置)

 

四、使用方法舉例:
先在需要重寫的網站根目錄下建立(IIRF.ini)檔案,並在檔案中寫入以下規則:

RewriteLogLevel 0 
RewriteLog  D:\iirf\logfiles\fxxsd
RewriteEngine ON
StatusInquiry ON 

 

RewriteCond %{HTTP_HOST}  ^(?!www)([^.]+)\.piaoyi\.org [NC]
RewriteRule ^/(.*)$  /type/*1.htm [U,L]

    該規則實現的是 任意次層網域 a.piaoyi.org 、b.piaoyi.org、123.piaoyi.org (除www外)等自動重新導向到 /type/a.htm 、 /type/b.htm、 /type/123.htm 下。(飄易提醒:IIRF回調符是 *1,而 ISAPI_Rewrite裡的回調符是 %1).

 

    更多的例子,請參考IIRF的英文協助手冊:
例子1,阻止特定IP段訪問

RewriteLogLevel 1
RewriteLog c:\inetpub\iirfLogs\iirf
RewriteEngine ON
StatusInquiry ON
IterationLimit 5

 

# If the IP address is not in the specified range, return 404
# (NF = Not Found)
RewriteCond %{REMOTE_ADDR} ^(?!24\.132\.(\d+)\.(\d+))
RewriteRule ^/.*$ - [NF]

 

例子2,次層網域訪問不同目錄

RewriteEngine ON
RewriteLog c:\inetpub\iirfLogs\iirf
RewriteLogLevel 1
StatusInquiry ON

 

# +++++++++++++++++++++++++++++++++

 

RewriteCond %{HTTP_HOST}   ^alias1\.domain\.com$  [I]
ProxyPass ^/(.*)$          http://internal-server1/$1

 

RewriteCond %{HTTP_HOST}   ^alias2\.domain\.com$  [I]
ProxyPass ^/(.*)$          http://internal-server2/$1

 

RewriteCond %{HTTP_HOST}   ^alias3\.domain\.com$  [I]
ProxyPass ^/(.*)$          http://internal-server3/$1

 

例子3,老網域名稱301到新網域名稱

RewriteLog c:\logs\iirf
RewriteLogLevel 1
IterationLimit 10
MaxMatchCount 10
RewriteEngine ON
StatusInquiry ON

 

# With a request like http://olddomain.com/Alpha.htm or http://olddomain.com/Alpha.asp (or
# if the olddomain is prefixed with www) , redirect (HTTP 301)
# the request to http://www.domain.com/Alpha.aspx

 

RewriteCond  %{HTTP_HOST}            ^(www\.)?olddomain\.com$
RedirectRule ^/(.+)\.(htm|asp)$       http://www.newdomain.com/$1.aspx         [R=301]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.