您好,歡迎來到58網(wǎng)站目錄!
當(dāng)前位置:58網(wǎng)站目錄 » 站長資訊 » 小技巧 » 文章詳細(xì)

Windows7下IIS7.5的偽靜態(tài)URL Rewrite安裝配置和案例綜合

站長「蝙蝠俠」:QQ1251270088  瀏覽:1703次 時(shí)間:2015-12-28

安裝:

關(guān)于Windows 7下IIS7.5的偽靜態(tài)的介紹好像很少,一般都是Vista下的IIS7.0,不過好在IIS7.0和IIS7.5差別并不是很大,不過對(duì)于我這個(gè)直接從IIS5.1跳到IIS7.5的人來說還是有點(diǎn)小麻煩的,從5.1到7.5變化還是蠻大的。

實(shí)現(xiàn)asp.net網(wǎng)站整站偽靜態(tài)化需要以下條件: 
1.IIS7.0 (目前Url Rewrite Module僅支持IIS7); 
2.Url Rewrite Module,下載地址:http://www.iis.net/expand/URLRewrite

下面說下IIS7.5下偽靜態(tài)(Rewrite)的安裝,安裝很傻瓜式的,下載這個(gè)組件,下載好了直接安裝下酒可以了。

安裝好了之后我們打開IIS,即可在網(wǎng)站IIS的配置中看到 URL rewrite的選項(xiàng)

urlrewrite1

雙擊URL rewrite圖標(biāo)(前提是先選定左邊“網(wǎng)站”目錄下你想使用偽靜態(tài)的那個(gè)本地測試網(wǎng)站目錄,如圖),然后我們就進(jìn)入到了rewrite管理頁面; 
然后我們就進(jìn)入到了rewrite規(guī)則管理頁面;

urlrewrite2

點(diǎn)擊Add Rules后我們即可進(jìn)入添加規(guī)則頁面,當(dāng)然最簡單的處理方式就是在本地寫好一個(gè) *.htaccess 規(guī)則文件,然后點(diǎn)擊Import Rules導(dǎo)入就OK了。

案例:

很友好的URL地址,使訪問的人很容易記住。要求你的用戶記住“ http://www.pipima.com/article.aspx?id=342&;title=URL-Rewrite-Walkthrough” 這樣的網(wǎng)址并不是件很美妙的事。如果給用戶提供如下URL地址:http://www.pipima.com/article/342/URL-Rewrite-Walkthrough,就能更好引起共鳴和更容易被記住。 
通過IIS URL Rewrite 模塊( URL Rewrite module)你可以很方便建立這一邏輯而不需要修改正在使用的Rewrite Maps代碼.我將告訴你從IIS管理器里來實(shí)現(xiàn)。打開IIS管理器,選擇“Default Web Site”,在“功能視圖”單擊“URL Rewrite”,然后在“操作”欄,單擊“Add Rules…”,在“select a rule templates”對(duì)話框選擇“Blank rule”,將打開“edit rule”屬性頁,按如下步驟定義實(shí)際的重寫規(guī)則(rewrite rule): 
1、規(guī)則名稱。 
2、匹配URL字符串所使用的模式。 
3、設(shè)置條件選項(xiàng)。 
4、模式匹配和所有條件檢查成功后執(zhí)行的操作。 
為了實(shí)現(xiàn)下面的例子,“edit rule”屬性頁如下圖所示:

addrule

規(guī)則的名稱應(yīng)該是唯一(不重復(fù))的,匹配字符串“^article/([0-9]+)/([_0-9a-z-]+)”是正則表達(dá)式,將匹配滿足一下標(biāo)準(zhǔn)的任何URL字符串: 
1、開始于“article/”字符序列。 
2、在“/”后包含一個(gè)或多個(gè)數(shù)字字符。 
3、在第二個(gè)“/”后包含一個(gè)或多個(gè)字母或“_”或“-”。 
因?yàn)槲覀儎?chuàng)建一個(gè)支持重寫URL的規(guī)則,因此規(guī)則類型是“Rewrite“。重寫字符串(Rewrite UR)“article.aspx?id={R:1}&title={R:2}”指定一個(gè)新值用于輸入被重寫的URL。參數(shù)我們使用“ {R:1} ”和“{R:2}”,他們將返回一組通過規(guī)則匹配定義的引用(reference)。關(guān)于返回引用( back reference)你可以參考:URL Rewrite Module Configuration Reference,有關(guān)創(chuàng)建重寫規(guī)則的更多內(nèi)容見:Creating rewrite rules for the URL Rewrite Module 
一個(gè)很重要的就是URL Rewrite模塊是需要被安裝才可以工作,你可以如下兩個(gè)版本: 
x86版本:http://www.iis.net/downloads/default.aspx?tabid=34&;g=6&i=1691 
x64版本:http://www.iis.net/downloads/default.aspx?tabid=34&;g=6&i=1692 
該模塊(目前)只支持IIS7.0,你應(yīng)該運(yùn)行IIS7.0有利于使用它。如果你的項(xiàng)目是使用Visual Studio for Web Developers開發(fā),那么項(xiàng)目應(yīng)該配置成在iis7.0下運(yùn)行,而不是其他的web服務(wù)器。 
有關(guān)URL Rewrite模塊的詳細(xì)內(nèi)容見:http://learn.iis.net/page.aspx/460/using-url-rewrite-module/

注意:

1.原來的$1換成{R:1},其他語法少許變化<rewrite url="~/test/([a-zA-Z0-9_\-]+)/(\d+).html\?{0,1}(.*)$" to="~/test.aspx?id=$4&$5" processing="stop"/> 
換成 
<rule name="OrgPage" stopProcessing="true"> 
                <match url="^test/([a-zA-Z0-9_\-]+)/(\d+).html\?{0,1}(.*)$" />                
                <action type="Rewrite" url="test.aspx?id={R:1}&{R:2}" /> 
</rule> 
2.UrlRewriter中 url="~/module/“ ,在URL Rewrite Module中必須換成^module/,否則就算test通過,在實(shí)際環(huán)境中也無法解析; 
3.以前 UrlRewriter中 url="^/([a-zA-Z0-9_]+)“是可以的,但是在URL Rewrite Module中不行,必須添加參數(shù) 
<conditions logicalGrouping="MatchAll"> 
                        <add input="{HTTP_HOST}" pattern="^blog\.lehu\.shu\.edu\.cn$" /> 
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
</conditions> 
4.另外需要注意IIS6的config轉(zhuǎn)換到iis7的時(shí)候,需要?jiǎng)h除applicationHost.config中<handlers accessPolicy="Read, Script" />的多余參數(shù),或者干脆重新建立,否則會(huì)出現(xiàn)很多奇怪的問題,我昨天為了這個(gè)搞了好幾個(gè)小時(shí),后來才發(fā)現(xiàn)問題。 
總體上說,IIS7比IIS6穩(wěn)定些了,到現(xiàn)在位置,IIS6中總是出現(xiàn)的緩沖池死在IIS7中很少出現(xiàn)。具體情況還需要測試。 
另: 
Microsoft URL Rewrite Module 下載地址: 
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1692 
Microsoft URL Rewrite Module Configuration的說明 
http://learn.iis.net/page.aspx/465/url-rewrite-module-configuration-reference/


本文地址:http://quema.com.cn/artinfo/2462.html
?