asp.net下實現URL重寫技術的代碼
2024-07-10 12:40:01
供稿:網友
URL 重寫是截取傳入 Web 請求并自動將請求重定向到其他 URL 的過程。
比如瀏覽器發來請求hostname/101.aspx ,服務器自動將這個請求中定向為http://hostname/list.aspx?id=101。
url重寫的優點在于:
縮短url,隱藏實際路徑提高安全性
易于用戶記憶和鍵入。
易于被搜索引擎收錄
二 實現url重寫的基本方法
下載MS的URLRewriter.dll,放到你的web程序的bin下
下載地址1:http://www.rickel.cn/uploads/DevTools/MSDNURLRewriting.msi
下載地址2:download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
下載完成后,在web.config里設置如下:
<?xml version="1.0" encoding="utf-8" ?>
<!--overred-->
<configuration>
<configSections>
<section name="RewriterConfig"type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/d(/d+)/.aspx</LookFor>
<SendTo>~/default.aspx?id=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
<system.web>
<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
</system.web>
</configuration>
其中
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
用于指定配置節"RewriterConfig"的處理程序類的名稱為”URLRewriter.Config.RewriterConfigSerializerSectionHandler”,該類存在于bin目錄下的URLRewriter .dll文件中
關鍵的是這兩句
<LookFor>~/d(/d+)/.aspx</LookFor>
<SendTo>~/default.aspx?id=$1</SendTo>
<LookFor>~/d(/d+)/.aspx</LookFor>表示,用戶輸入的url,d(/d+)/.aspx是 url中文件名匹配的正則表達式(此處為字母d開頭,后面跟一個或多個數字,并以.aspx結尾。用戶也可根據自己的需要自行設定)。