C# Url重写的aspx页面。请给我建议
我是asp.net新手。我有iis版本6.0。我想重写url。实际上我在一个网站上工作。当我在C# Url重写的aspx页面。请给我建议,c#,asp.net,iis,url-rewriting,C#,Asp.net,Iis,Url Rewriting,我是asp.net新手。我有iis版本6.0。我想重写url。实际上我在一个网站上工作。当我在web.config <urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="default.aspx" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/s
web.config
<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>
当我运行它时,它会显示错误“unrecognized configuration section rewriter”。我的回答不会直接回答您的问题(关于URLRewitingNet库)。相反,我建议考虑微软的官方图书馆,它需要IIS 7.x或更高版本。UrlRewritingNet库虽然在几年前很有用,但现在却不是在IIS/ASP.NET中重写URL的理想方法。我提供此建议,因为您提到您是ASP.NET新手。:) 我的回答没有直接回答您的问题(关于URLRewitingNet库)。相反,我建议考虑微软的官方图书馆,它需要IIS 7.x或更高版本。UrlRewritingNet库虽然在几年前很有用,但现在却不是在IIS/ASP.NET中重写URL的理想方法。我提供此建议,因为您提到您是ASP.NET新手。:) 用户 您需要实现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>
在web.config中注册您的httpmodule,一旦everyrequest出现此问题,您可以根据需要重写url
我最近实现了这一功能,并让我知道如果您需要任何帮助,我将竭诚帮助您。用户
您需要实现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>
在web.config中注册您的httpmodule,一旦everyrequest出现此问题,您可以根据需要重写url
我最近实施了这个,如果你需要帮助,请告诉我,我会全力帮助你。我有iis6.0。有没有办法用iis6.0重写url?我有iis6.0。有没有办法用iis6.0重写url?请告诉我我在web.configadd中做了任何更改。在配置部分添加httpModules,如果是单独的dll,请将此dll放在bin文件夹中。我不知道,请建议我“我添加此dll”它在web.config中给出了一个错误,无法加载文件或程序集“命名空间”或其依赖项之一。系统找不到指定的文件。我添加了它``用户,您应该更改名称空间,使用您的库名称,您在项目中的何处定义了urlModule,在此给出该名称请告诉我,我在web.configadd httpModules中做了任何更改,如果它是一个单独的dll,请在bin文件夹中添加该dll。我不知道是哪个dll。请建议我``我在web.config中添加此dll,它给出了错误无法加载文件或程序集“名称空间”或其依赖项之一。系统找不到指定的文件。我添加了它``用户,您应该更改名称空间,使用您的库名称,您在项目中的何处定义了urlModule,请在此处指定该名称