win7/Win8/Win10, IIS7.5/IIS8/IIS10 配置偽靜態


第一步: 
從如下地址中下載URLRewriter組件組件:

官方下載地址:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi

第二步:在網站項目中添加URLRewriter程序集的引用。

第三步:配置webconfig文件:

注意事項:1、參數用()括起來,使用 $1 來獲得參數。2、多個參數的時候使用&分割。

    1。在<configuration>與</configuration>節點中間加入如下配置:

<configSections>
        <section name= "RewriterConfig"  type= "URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"  />
    </configSections>

    2。 在<system.web>與</system.web> 之間加入

<httpHandlers>
           <add verb= "*"  path= "*.aspx"  type= "URLRewriter.RewriterFactoryHandler, URLRewriter"  />
           <add verb= "*"  path= "*.html"  type= "URLRewriter.RewriterFactoryHandler, URLRewriter"  />
  </httpHandlers>

    或者

<system.web>                         
   <httpModules>                          
    <add type=”URLRewriter.ModuleRewriter, URLRewriter” name=”ModuleRewriter”/>                       
   </httpModules>                         
  </system.web>                                                                                   

  

3。配置偽靜態的語法:在<configuration>與</configuration>之間加入<RewriterConfig> </RewriterConfig>節點。  

    在  <RewriterConfig>與</RewriterConfig>之間加入偽靜態規則:      <Rules> <!–定義偽靜態第一條規則開始–> <RewriterRule> <LookFor>~/xxxx/view(.[\d]*)\.html</LookFor> <SendTo>~/xxxx/view.aspx?id=$1</SendTo> </RewriterRule>   <!–定義偽靜態第一條規則結束–> <!–定義偽靜態第二條規則開始–> <RewriterRule> <LookFor>~/yyyy/(.[\d]*)/view.html</LookFor> <SendTo>~/yyyy/view.aspx?id=$1</SendTo> </RewriterRule>

例子如:

復制代碼
    <RewriterConfig>
        <Rules>
            <!--官網-->
            <RewriterRule>
                <LookFor>~/web/new/type-(.[0-9]*)\.html</LookFor>
                <SendTo>~/web/new.aspx?id=$1</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>/index.html</LookFor>
                <SendTo>/index.aspx</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>/aboutus/aboutusContent-(.*).html</LookFor>
                <SendTo>/aboutus/aboutusContent.aspx?pageurl=$1</SendTo>
            </RewriterRule>
          <RewriterRule>
                <LookFor>/shop/GiftList-(.*)-(.*).html</LookFor>
                <SendTo>/shop/GiftList.aspx?nav=$1&amp;price=$2</SendTo>
            </RewriterRule>
         <RewriterRule>
                <LookFor>/shop/list-(.*)-(.*)-(.*).html</LookFor>
                <SendTo>/shop/list.aspx?nav=$1&amp;licno=$2&amp;orderby=$3</SendTo>
            </RewriterRule>
            <RewriterRule>
                <LookFor>/shop/list-(.*)-(.*)-(.*)-(.*).html</LookFor>
                <SendTo>/shop/list.aspx?nav=$1&amp;licno=$2&amp;orderby=$3&amp;price=$4</SendTo>
            </RewriterRule>
        </Rules>
    </RewriterConfig>
復制代碼

或者

<RewriterConfig>
       <rewriter>                       
<rewrite   url= "^(/.+(\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js)(\?.+)?)$"    to= "$1"  processing= "stop"  />       
<rewrite   url= "~/lmh$"  to= "~/Users.aspx?user=lmh"    processing= "stop"  />       
<rewrite   url= "~/tags/(.+)"  to= "~/tag/tagcloud.aspx?tag=$1"   processing= "stop" />        <rewrite   url= "^~/mypage(\?.+)?$"  to= "~/index.htm$1"    processing= "stop"  />        <rewrite   url= "~/article-([^-]+)-([^-]+)-([^-]+).html"     to= "~/testurl/article.asp?id=$1&sid=$2&page=$3"   processing= "stop" />     
   <rewrite   url= "^(.*)/(\?.+)?$"  to= "$1/index.htm$2?"  />   
     </rewritr>
</RewriterConfig>

url是可以使用正則表達式的。比如上面的例子:

規則一:當發現文件類型為   .gif, .png,.jpg, .ico, .pdf, .css or .js時,停止rewrite

規則二:就是將/lmh重寫到/Users.aspx?user=lmh,$在正則表達式中表示是串的結束,也就是說/lmhe是不會被重寫到to后的地址的,如果把$去掉則可以

規則三:將tags/xxx重寫為tag/tagcloud.aspx?Tag=xxx

規則四:當用戶輸入錯誤象mypagexxx形式的地址時,轉到網站默認頁面

規則五:設置用戶網站的默認頁面為index.htm

新添asp規則:將article.asp?id=13&sid=10&page=2通過偽靜態轉換成article-10-13-2.html格式來訪問頁面

第四步:配置IIS7.5 或IIS7.0

1.新建一個應用程序池:名稱:任意如:aspnet;選擇net 
FrameWork版本(如果你的網站時候2.0的話就選擇2.0,我的是4.0)在此我選擇Net FramWork v 4.030319. 
托管管道模式先暫時設置為集成模式。等下面的設置完成之后再將托管管道模式設置為經典模式。如果下面的設置完成之后不把應用程序設置為經典模式的話,偽靜態的功能可以實現,但是頁面的樣式圖片不能正常顯示這是設置的關鍵。

2 新建一個網站 website ,將此站點的應用程序程序池設置為aspnet。

3 選中你的站點比如website ,並且切換到功能視圖。雙擊【處理程序映射】在打開窗口右側的操作欄目下做如下操作。

   3.1,【添加腳本映射】-路徑為:*.html.可執行文件為:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 
    注意:如果你的網站是2.0。可執行文件為:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 。名稱:任意,比如:html.
   3.2, 【添加通配符腳本映射】 請求路徑為*。可執行文件為:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,名稱任意,比如:aspnet.
   3.3,【托管處理程序映射】(路徑:* 可執行文件:System.Web.UI.PageHandlerFactory 名稱 任意 比如Html-Integrate)
   3.4, 雙擊website站點切換到站點功能視圖。然后雙擊模塊,打開窗口之后在右側的操作欄目下面,單擊【添加托管模塊】-》名稱:任意 如aspnet 類型:URLRewriter.ModuleRewriter 並且 把【僅針對向asp.net 應用程序 或托管處理程序發出請求調用】前面的選項 勾上。(記住一定要勾上)。
   3.5 最后一步:雙擊iis7.0或7.5的應用程序池。在應用程序池列表中找到【aspnet】應用程序池。雙擊打開之后。將aspnet應用程序池的【托管管道模式】設置為經典模式。

 

轉載自 http://www.cnblogs.com/luckly-hf/archive/2013/03/07/2947687.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM