2011-03-04 41 views
1

我是asp.net中的新手。我有iis 6.0版。我想重寫url。其實我正在一個網站上工作。當我在web.configUrl重寫aspx page.pls給我建議

<urlrewritingnet 
    rewriteOnlyVirtualUrls="true" 
    contextItemsPrefix="QueryString" 
    defaultPage="default.aspx" 
    defaultProvider="RegEx" 
    xmlns="http://www.urlrewriting.net/schemas/config/2006/07" > 
    <rewrites> 
     <add name="this-is-a-long-page-name" virtualUrl="^~/this-is-a-long-page-name" 
      rewriteUrlParameter="ExcludeFromClientQueryString" 
      destinationUrl="~/Default.aspx" 
      ignoreCase="true" /> 
    </rewrites> 
    </urlrewritingnet> 

當我運行它使用這個標籤,它顯示了錯誤「無法識別的配置部分重寫」。

回答

4

用戶,

你需要實現urlrewritemodule,所有的請求涉及到urlrewritemodule。 你可以寫你的邏輯有

public class UrlModule : IHttpModule 
    { 
     public virtual void Init(HttpApplication application) 
     { 
      application.BeginRequest += new EventHandler(this.BaseUrlModule_BeginRequest); 
     } 
     public virtual void Dispose() 
     { 
     } 
     protected virtual void BaseUrlModule_BeginRequest(object sender, EventArgs e) 
     { 
      HttpApplication application = (HttpApplication)sender; 
      Rewritethepath(application.Request.Path, application); 
     } 

     private void Rewritethepath(string requestedPath, HttpApplication application) 
     { 
      application.Context.RewritePath("/yournewurl", String.Empty, QueryString);     
     } 
    } 

創建此條目在你的web.config

<httpModules> 
       <add type="namespace.UrlModule, namespace" name="UrlModule"/> 
      </httpModules> 

註冊您的HttpModule在你的web.config,一旦everyrequest談到這一點,你可以重寫URL但是你想要,

我最近實施了這一點,讓我知道如果你需要任何幫助,我會不定期地幫助你。

+0

請告訴我我已經做了web.config中的任何更改 – user644194 2011-03-04 06:29:49

+0

是讓我給你提供的代碼, – kobe 2011-03-04 06:32:48

+0

它給httpmodule中的錯誤。 – user644194 2011-03-04 06:33:31

1

我的迴應並不直接回答你的問題(這是關於UrlRewritingNet庫)。相反,我建議考慮微軟的官方IIS URL Rewrite庫,它需要IIS 7.x或IIS Express。 UrlRewritingNet庫雖然在幾年前很有用,但現在還不是一種理想的方式來重寫IIS/ASP.NET中的URL。我提供這個建議,因爲你提到你是ASP.NET的新手。 :)

+0

我有iis6.0。它是任何方式來重寫url與iis6.0 – user644194 2011-03-04 06:17:45