2015-05-27 57 views
0

我有一個在asp.net開發的網站。我想將URL1更改爲URL2。 我在我的global.asax文件中寫了幾行代碼。如何在asp.net中將原始URL重寫爲不同的URL?

void RegisterRoutes(System.Web.Routing.RouteCollection routes) 
    { 
     routes.MapPageRoute("mdu-b.ed-admission-process-eligibility-apply-online-2015-16.aspx", "mdu-b.ed-admission-process-eligibility-apply-online-2015-16.aspx", "~/mdu-b.ed-admission-process-and-eligibility-2015-16.aspx"); 
    } 

並調用內部的Application_Start(對象發件人,EventArgs e),本功能methos這樣

RegisterRoutes(System.Web.Routing.RouteTable.Routes); 

方案是;此代碼工作正常,但是當我像這樣打開URL(以原始URL的形式)http://www.ssbedugroup.com/mdu-b.ed-admission-process-and-eligibility-2015-16.aspx它不打開更改的URL,即http://www.ssbedugroup.com/mdu-b.ed-admission-process-eligibility-apply-online-2015-16.aspx

你們能否爲我提供更好的解決方案我如何解決我的問題?

回答

0

您可以使用IIS的url重寫模塊輕鬆完成此操作。以下web.config配置片段展示瞭如何將它以源重寫目標URL配置:

<configuration> 
    <system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="MyRule" stopProcessing="true"> 
      <match url="^mdu-b\.ed-admission-process-eligibility-apply-online-2015-16\.aspx$" /> 
      <action type="Redirect" url="http://www.ssbedugroup.com/mdu-b.ed-admission-process-and-eligibility-2015-16.aspx" redirectType="Permanent" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 
</configuration> 

這有效地配置Web服務器返回每次請求的源URL時重定向響應,所以用戶總是會在瀏覽器地址欄中看到目標網址。

請記住,「匹配」的標籤接受的URL正則表達式,所以你需要逃避一些經過特殊處理的字符,如點,反斜線,支架等

+0

但如果我刷新頁面http:// www.ssbedugroup.com/mdu-b.ed-admission-process-eligibility-apply-online-2015-16.aspx它顯示資源無法找到 –

+0

@SoftonicAura你能詳細說明你到底做了什麼嗎?您是否嘗試過按照我的建議配置IIS網址重寫? –

+0

完成@Milos Mrdovic –