再次查找,找到了Ionic's Isapi Rewrite Filter,完全開(kāi)源,完全免費(fèi),完全沒(méi)有中文使用手冊(cè)。
測(cè)試后,使用正常,用法分享一下:
首先到官方網(wǎng)站http://www.codeplex.com/IIRF/Release/ProjectReleases.aspx下載最新軟件包,注意要下載的是IonicIsapiRewriter-2.*-Release-bin.zip(我們下載地址),版本號(hào)可能會(huì)變化。以下安裝僅針對(duì)WIN2003+IIS6.0的服務(wù)器環(huán)境。
一、安裝IIRF
1、復(fù)制IIRF的DLL(IIRF.dll)到相應(yīng)的文件夾,如D:Rewrite。 或者,它可以在一個(gè)完全不同的目錄樹(shù)。 這取決于你。
2、如果您創(chuàng)建一個(gè)服務(wù)器全局范圍的設(shè)置文件(IirfGlobal.ini),你必須把它與(IIRF.dll)文件在同一目錄中。 該URL Rewrite篩選器將尋找其在該文件中的全局設(shè)置文件。 如果是多個(gè)站點(diǎn),則在站點(diǎn)更目錄下創(chuàng)建(IIRF.dll)文件。
3、對(duì)(IIRF.dll)所在目錄賦予IIS_WPG用戶(hù)組“讀取”、“讀取與運(yùn)行”、“寫(xiě)入”權(quán)限。
4、 打開(kāi)Internet信息服務(wù)管理器。右鍵點(diǎn)擊IIS管理器左欄“網(wǎng)站” 》“屬性”,彈出“網(wǎng)站屬性”選項(xiàng)卡,選擇“ISAPI篩選器”,如下圖添加IIRF。
5、重啟IIS
6、右鍵點(diǎn)擊IIS管理器左欄“網(wǎng)站” 》“屬性”,彈出“網(wǎng)站屬性”選項(xiàng)卡,選擇“ISAPI篩選器”,查看“IIRF”加載是否成功。若是綠色向上箭頭,則表示加載成功。
二、規(guī)則文件格式基本照搬ISAPI Rewrite,要作修改
RewriteRule [源URL正則條件] [目的URL]
ISAPI Rewrite與IIRF的區(qū)別就在[目的URL],ISAPI Rewrite的要轉(zhuǎn)義,而IIRF不用轉(zhuǎn)義。
如果網(wǎng)上有現(xiàn)成的ISAPI Rewrite的規(guī)則可以直接復(fù)制過(guò)來(lái),將[目的URL]中的反斜杠()一個(gè)個(gè)刪除就可以用在IIRF中用了。
知道這個(gè)之后,你就可以隨便在網(wǎng)上與人交流,按ISAPI Rewrite交流,最后把轉(zhuǎn)義符()刪掉就行了。
三、日志設(shè)置
在IIRF中日志值可以設(shè)置為0-5,在規(guī)則文件的開(kāi)頭部分有兩行設(shè)置日志類(lèi)型
RewriteLog C:RewritesupesiteiirfLog.out (注意要寫(xiě)清楚路徑,各站點(diǎn)不同)
RewriteLogLevel 0 (0為不記類(lèi),3為一般測(cè)試,5為處理故障)
日志的代價(jià)高昂,同時(shí)不會(huì)自動(dòng)刪除文件,日志類(lèi)型一定要設(shè)成0,除非用于檢查才能修改為其他值,檢查完后一定要改為0,否則日志文件把硬盤(pán)占滿(mǎn)就麻煩了。
如果日志不為0,篩選器起用后,對(duì)應(yīng)文件夾會(huì)產(chǎn)生類(lèi)似以下的文件,是文本格式的,可以用記事本查看。
iirfLog.out.12345.log
四、查看配置
在IIRF.ini文件中輸入以下配置參數(shù),則可通過(guò)瀏覽器方便查看目前IIRF配置
StatusUrl iirfStatus
StatusInquiry ON
在瀏覽器中輸入http://localhost/iirfstatus,即可查看。
五、規(guī)則文件可隨時(shí)修改,隨時(shí)生效!六、附上wordpress的IIRF規(guī)則
先到wordpress后臺(tái)設(shè)置固定連接為:/post/%post_id%.html
然后在wordpress所在網(wǎng)站的根目錄創(chuàng)建(IIRF.ini)文件,并在文件中加入以下規(guī)則:
- RewriteLogLevel 0
- RewriteLog E:lyingbluelogfilesIIRFLOGlog
- StatusUrl iirfStatus StatusInquiry ON
- RewriteRule /index.html$ /index.php [L]
- # from accessing through HTTP
- # # WordPress rewrite rules#
- # # Below is for permalink like /post/%post_id%.html
- # # Provided By Sideblue
- # # URL:http://ivup.cn RewriteCond %{REQUEST_FILENAME} ^wp-content.* RewriteCond %{REQUEST_FILENAME} ^wp-admin.*
- RewriteCond %{REQUEST_FILENAME} ^wp-include.*
- RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule /post/tag/(.*) /index.php?tag=$1
- RewriteRule /tag/(.*) /index.php?tag=$1
- RewriteRule /(contact|about-copyright|favor|archives|tags|sitemap) /index.php?pagename=$1
- RewriteRule /post/category/(.*)/(feed|rdf|rss|rss2|atom)/?$ /wp-feed.php?category_name=$1&feed=$2
- RewriteRule /post/category/?(.*) /index.php?category_name=$1
- RewriteRule /author/(.*)/(feed|rdf|rss|rss2|atom)/?$ /wp-feed.php?author_name=$1&feed=$2
- RewriteRule /author/?(.*) /index.php?author_name=$1
- RewriteRule /rss.xml /wp-feed.php?feed=rss2
- RewriteRule /feed/?$ /wp-feed.php?feed=rss2
- RewriteRule /comments/feed/?$ /wp-feed.php?feed=comments-rss2 #
- RewriteRule /([0-9]+)/?([0-9]+)?/?$ /index.php?p=$1&page=$2 #
- RewriteRule /post/([0-9]+)/?([0-9]+)?/?$ /index.php?p=$1&page=$2
- RewriteRule /post/([0-9]+).html /index.php?p=$1
- RewriteRule /page/(.*)/?s=(.*) /index.php?s=$2&paged=$1
- RewriteRule /page/(.*) /index.php?paged=$1
- RewriteRule /post/date/([0-9]{4})([0-9]{1,2})([0-9]{1,2})/([^/]+)/?([0-9]+)?/?$ /index.php?year=$1&monthnum=$2&day=$3&name=$4&page=$5
- RewriteRule /post/date/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$ /index.php?year=$1&monthnum=$2&day=$3&page=$4
- RewriteRule /post/date/([0-9]{4})/([0-9]{1,2})/?$ /index.php?year=$1&monthnum=$2&page=$3
- RewriteRule /post/([0-9]+).html/(feed|rdf|rss|rss2|atom) /index.php?feed=rss2&p=$1
- RewriteRule /post/([0-9]+).html/trackback /wp-trackback.php?p=$1