C# 在.NET4中重写URL
在.NET4中,URL重写的最佳解决方案是什么。我正在寻找一个简单的解决方案来重写URL,如 将“myurl.com/ApplicationName/Kohls”改为“myurl.com/ApplicationName/index.html?store=Kohls”,这样我就可以通过查询字符串访问var“Kohls” 我目前正在使用Global.asax,它一直在为上述案例工作,但如果用户在应用程序之后输入myurl.com/Application,没有“/”或任何内容,我就会遇到麻烦 我目前有:C# 在.NET4中重写URL,c#,asp.net,url-rewriting,C#,Asp.net,Url Rewriting,在.NET4中,URL重写的最佳解决方案是什么。我正在寻找一个简单的解决方案来重写URL,如 将“myurl.com/ApplicationName/Kohls”改为“myurl.com/ApplicationName/index.html?store=Kohls”,这样我就可以通过查询字符串访问var“Kohls” 我目前正在使用Global.asax,它一直在为上述案例工作,但如果用户在应用程序之后输入myurl.com/Application,没有“/”或任何内容,我就会遇到麻烦 我目前有
protected void Application_BeginRequest(object sender, EventArgs e)
{
String CurrentURLPath = Request.Path.ToUpper();
Match nothingAfterRoot = Regex.Match(CurrentURLPath, @"/ApplicationName(/)?$", RegexOptions.IgnoreCase);
if (nothingAfterRoot.Success)
{
HttpContext myContext = HttpContext.Current;
myContext.RewritePath("/ApplicationName/Default.aspx?store=ABC");
}
else
{
Match match = Regex.Match(CurrentURLPath, @"/ApplicationName(/)?(\w)*$", RegexOptions.IgnoreCase);
if (match.Success)
{
CurrentURLPath = CurrentURLPath.Trim('/');
String store= CurrentURLPath.Split("ApplicationName/".ToCharArray())[1];
HttpContext myContext = HttpContext.Current;
myContext.RewritePath(String.Format("/ApplicationName/Default.aspx?store={0}", store));
}
}
}
在.NET4中重写URL的最佳解决方案是什么
如果您有选择,请使用MVC框架。URL重写是默认设置
对于传统的asp.net站点,我使用UrlRewritingNet.UrlRewriter.dll将以下内容添加到我的web.config文件中:
<configSections>
<section name="urlrewritingnet" restartOnExternalChanges="true"
requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection,
UrlRewritingNet.UrlRewriter" />
</configSections>
<system.web>
<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString"
defaultPage="default.aspx" defaultProvider="RegEx"
xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
<rewrites>
<add name="ArticleUrlRewrite" virtualUrl="^~/a-(.*)-([\w-]*)\.aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/article.aspx?id=$1" ignoreCase="true" />
</rewrites>
</urlrewritingnet>
</system.web>
在.NET4中重写URL的最佳解决方案是什么
如果您有选择,请使用MVC框架。URL重写是默认设置
对于传统的asp.net站点,我使用UrlRewritingNet.UrlRewriter.dll将以下内容添加到我的web.config文件中:
<configSections>
<section name="urlrewritingnet" restartOnExternalChanges="true"
requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection,
UrlRewritingNet.UrlRewriter" />
</configSections>
<system.web>
<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString"
defaultPage="default.aspx" defaultProvider="RegEx"
xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
<rewrites>
<add name="ArticleUrlRewrite" virtualUrl="^~/a-(.*)-([\w-]*)\.aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/article.aspx?id=$1" ignoreCase="true" />
</rewrites>
</urlrewritingnet>
</system.web>
您可以使用ShortURL dotnet将类似bit.ly/XXXX的URL重写为www.mysite.com/index.htm 它将默认错误页面更改为重定向文件,并根据该值是否存在,将您重定向到真实URL 如果您对此解决方案感兴趣,可以在
您可以使用ShortURL dotnet将类似bit.ly/XXXX的URL重写为www.mysite.com/index.htm 它将默认错误页面更改为重定向文件,并根据该值是否存在,将您重定向到真实URL 如果您对此解决方案感兴趣,可以在
如上所述,MVC是一种很好的方法,如果它是一种选择的话 如果您正在运行IIS 7,则有一个URL重写模块可用: 和 如果您运行的是IIS6,您可以使用上面提到的urlrewritingnet,或者我更喜欢使用IIRF:
mod rewrite的相似性和基于regex的规则使得它非常强大如上所述,如果可以选择的话,MVC是一种很好的方法 如果您正在运行IIS 7,则有一个URL重写模块可用: 和 如果您运行的是IIS6,您可以使用上面提到的urlrewritingnet,或者我更喜欢使用IIRF: mod rewrite的相似性和基于regex的规则使得它非常强大