我的网址如下:
www.zzz.com/ExternalDocuments/ExternalDocumentUpload.aspx?hjgbasdjfjsggfsdf
我想为ExternalDocuments/ExternalDocumentUpload.aspx
提供简短的内容。我不想缩短整个网址。
答案 0 :(得分:3)
听起来你想要的不是“缩短” - 例如服务,例如bit.ly
用于缩短整个URL以便在Twitter或类似用途中使用 - 但“URL重写”。
这需要用户提供的“友好”路径 - 位于“/”的右侧 - 并将其转换为ASP.NET查找页面所需的URL。
根据您正在使用的ASP.NET和IIS的精确风格,有几种不同的方法可以执行此操作。 ScottGu在这里有一个很好的综述:
http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
对于IIS7,我使用过这里的那个:
答案 1 :(得分:1)
您可以在Application_BeginRequest事件中的global.asax文件中设置url重写,该文件将在每个请求上运行,检查请求的URL,如果需要,还可以将其重定向到所需的URL。你可以像这样进行检查:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
if (Request.RawUrl== "/someShorturl/page.aspx")
{
HttpContext.Current.RewritePath("/ExternalDocuments/ExternalDocumentUpload.aspx?hjgbasdjfjsggfsdf");
}
}
因此,如果用户访问“www.zzz.com/someShorturl/page.aspx”,他将获得“www.zzz.com/ExternalDocuments/ExternalDocumentUpload.aspx?hjgbasdjfjsggfsdf”页面,尽管浏览器中的网址赢了“改变。
如果您想将缩短的网址更改为长原始网址,可以调用Response.Redirect而不是RewritePath方法。
此示例适用于一个特定的URL,但您可以创建更复杂的逻辑。