在新聞系統或者其他系統中常會用到URL重寫技術,網上有好多這個教程,我就在這裡總結下我的實作過程。
本文參考了ASP.NET僞靜态 UrlRewrite(Url重寫) 實作和配置
第一步:将URLRewriter.dll這個檔案放到工程的bin目錄下,并在VS的工程的reference中添加URLRewriter
第二步:配置Web.config檔案,這裡需要配置三個地方。
第一個地方,在<configuration><configSections>中添加:
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" / > 第二個地方,在<configuration>中添加URL重寫規則:
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/website/d(\d+)\.aspx</LookFor>
<SendTo>~/website/DispalyArticle.aspx?id=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/website/d(\d+)\.html</LookFor>
<SendTo>~/website/DispalyArticle.aspx?id=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig> 比如說這裡我就是添加了當要定位到~/website /目錄下d+數字.html的網頁時就重定位到~/website/DispalyArticle.aspx并且傳過去頁面中的數字
在DispalyArticle.aspx中通過Request.QueryString["id"]獲得網頁中傳過來的id值
第三步:需要配置的地方,在<httpHandlers>中添加
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" /> 這樣就可以重定位html檔案了和aspx檔案了,不過在釋出到IIS中去的實收html檔案的重定位還需要配置IIS,配置過程如下:
你的網站-->IIS中處理程式映射->添加腳本映射(路徑:*.html 可執行檔案%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 名稱:任意,比如Hml )