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

來源:互聯網
上載者:User

安裝:

關於Windows 7下IIS7.5的偽靜態介紹好像很少,一般都是Vista下的IIS7.0,不過好在IIS7.0和IIS7.5差別並不是很大,不過對於我這個直接從IIS5.1跳到IIS7.5的人來說還是有點小麻煩的,從5.1到7.5變化還是蠻大的。

實現asp.net網站整站偽靜態化需要以下條件:
1.IIS7.0 (目前Url Rewrite Module僅支援IIS7);
2.Url Rewrite Module,:http://www.iis.net/expand/URLRewrite

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

安裝好了之後我們開啟IIS,即可在網站IIS的配置中看到 URL rewrite的選項

 

雙擊URL rewrite表徵圖(前提是先選定左邊“網站”目錄下你想使用偽靜態那個本地測試網站目錄,),然後我們就進入到了rewrite管理頁面;
然後我們就進入到了rewrite規則管理頁面;

點擊Add Rules後我們即可進入添加規則頁面,當然最簡單的處理方式就是在本地寫好一個 *.htaccess 規則檔案,然後點擊Import Rules匯入就OK了。

案例:

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

規則的名稱應該是唯一(不重複)的,匹配字串“^article/([0-9]+)/([_0-9a-z-]+)”是Regex,將匹配滿足一下標準的任何URL字串:
1、開始於“article/”字元序列。
2、在“/”後包含一個或多個數字字元。
3、在第二個“/”後包含一個或多個字母或“_”或“-”。
因為我們建立一個支援重寫URL的規則,因此規則類型是“Rewrite“。重寫字串(Rewrite UR)“article.aspx?id={R:1}&title={R:2}”指定一個新值用於輸入被重寫的URL。參數我們使用“ {R:1} ”和“{R:2}”,他們將返回一組通過規則匹配定義的引用(reference)。關於返回引用( back reference)你可以參考:URL Rewrite Module Configuration Reference,有關建立重寫規則的更多內容見:Creating rewrite rules for the URL Rewrite Module
一個很重要的就是URL Rewrite模組是需要被安裝才可以工作,你可以如下兩個版本:
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,你應該運行IIS7.0有利於使用它。如果你的項目是使用Visual Studio for Web Developers開發,那麼項目應該配置成在iis7.0下運行,而不是其他的web伺服器。
有關URL Rewrite模組的詳細內容見: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通過,在實際環境中也無法解析;
3.以前 UrlRewriter中 url="^/([a-zA-Z0-9_]+)“是可以的,但是在URL Rewrite Module中不行,必須添加參數
<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轉換到iis7的時候,需要刪除applicationHost.config中<handlers accessPolicy="Read, Script" />的多餘參數,或者乾脆重建立立,否則會出現很多奇怪的問題,我昨天為了這個搞了好幾個小時,後來才發現問題。
總體上說,IIS7比IIS6穩定些了,到現在位置,IIS6中總是出現的緩衝池死在IIS7中很少出現。具體情況還需要測試。
另:
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/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.