在 IIS7中我們不再需要安裝其他組件,通過在 web.config 進行簡單的配置即可實現 URL 的偽靜態。方法如下:
在 web.config 配置文件的 configuration 節點中加入下邊的代碼:
代碼如下
<system.webServer>
<rewrite>
<rules>
<rule name="rulename">
<match url="newurl" ignoreCase="false" />
<action type="Rewrite" url="oriurl" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
其中, rule 節點即為每個重寫規則,match 節點為偽靜態的規則;ignoreCase 是忽略大小寫;action 是響應的 URL,即真正的URL;appendQueryString 為是否跟參數。添加多個 rule 時,注意 name 名稱應該保持不同。
以下直接給出本站的 URL 重寫規則,相信大家會一目了然:
代碼如下
<rewrite>
<rules>
<rule name="rule1">
<match url="articles/(S+).html" ignoreCase="true" />
<action type="Rewrite" url="articles/Default.aspx?SubClass={R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
可見,在 IIS6 裡如果跟參數的話使用 $ 字符,在 IIS7 使用{R:數字}代替 $ 字符。至於多個參數時,別忘記使用 & 替換 & 符號。
如果你是iis6可參考下面方法來實例偽靜態
我們需要下載微軟官方提供的URLRewriter.dll,下載後將些dll文件引用到我們的項目中。接下來,需要在web.config裡進行一些簡單的配置,就可以實現url的重定向。
首先,在webconfig中找到configSections,在以下位置加入給出的代碼:
代碼如下
</sectionGroup>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
接下來,找到httpHandlers,在以下位置加入給出的代碼:
代碼如下 <httpHandlers>上邊加入的代碼,就會對.html和.aspx後綴的url路徑進行重定向。最後,我們要加入重定向的規則,從而實現url重定向。
代碼如下
</configSections>
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/article/(S+)/(d{8})/(S+).html</LookFor>
<SendTo>~/article/default.aspx?Sub=$1&UrlName=$3</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
上邊就是重定向的規則,上邊是以我自己的小站為例。將domain/article/文章類型/發布時間/文章名稱.html重新定向到了domain/article/default.aspx?Sub=文章類型&UrlName=文章名稱 。我自己對正則也不是很了解,^_^。如果有興趣大家可以學習下,最後別忘了要將 &UrlName中的&符號寫成& ,