簡體   English   中英

在asp.net中重寫URL

[英]rewriting url in asp.net

大家好,我正在使用asp.net 2.0和dotnetnuke 5.6,並使用跨文章模塊,現在我希望該用戶可以為文章創建多個別名。

像下面這樣說。 article / stackoverflow stackexchange / article等。

假設第一個文章與文章ID 1關聯,第二個文章與文章ID 2關聯,那么他們應該跳到各自的頁面。.例如article / 1或article / 2

我可以從web.config文件中執行此操作...但是問題是可能存在別名錯誤,因此將其保存在web.config文件中完全是個失敗的主意。 所以我想用global.asax文件來做。

我試過下面的代碼:

在我保存的字符串變量中:Request.RawUrl.ToString(),然后將其與輸入的url用戶進行比較,然后將其重定向到適當的頁面...

但是我遇到以下問題:我不希望用戶重定向我想重寫url,即,如果用戶輸入article / stackoverflow ...他應該被重定向到article / 1頁面,但url應該保留。

請任何人對此問題提出建議。

要重寫URL(相對於重定向),您可以執行以下操作:

private static void RewriteUrl(HttpApplication application, TabInfo tabInfo, string additionalQueryString)
{
    application.Context.Items["UrlRewrite:OriginalUrl"] = application.Request.Url.AbsoluteUri;

    var portalAliasInfo = PortalAliasController.GetPortalAliasInfo(application.Context.Request.Url.DnsSafeHost);        
    application.Context.Items["PortalSettings"] = new PortalSettings(tabInfo.TabID, portalAliasInfo);

    var queryString = String.Format("tabid={0}" + additionalQueryString, tabInfo.TabID);
    application.Context.RewritePath("~/default.aspx", string.Empty, queryString, false);
}

我建議您在httpmodule中執行此操作,而不要修改核心代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM