天天看點

ASP.NET中實作URL重寫

在新聞系統或者其他系統中常會用到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 )