我是asp.net的新手。我有iis版本6.0。我想重写网址。其实我在网站上工作。当我在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>
当我运行它时,它会显示错误“无法识别的配置部分重写器”。
答案 0 :(得分: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>
在你的web.config中注册你的httpmodule,一旦每次请求你都可以重写你想要的网址,
我最近实现了这一点并让我知道如果你需要任何帮助,我会默默地帮助你。
答案 1 :(得分:1)
我的回复没有直接回答您的问题(关于UrlRewritingNet库)。相反,我建议考虑使用Microsoft官方IIS URL Rewrite库,该库需要IIS 7.x或IIS Express。 UrlRewritingNet库虽然在几年前很有用,但现在不太适合在IIS / ASP.NET中重写URL。我提供这个建议,因为你提到你是ASP.NET的新手。 :)