如何缩短网址

时间:2011-11-07 06:15:50

标签: c# asp.net

我的网址如下:

www.zzz.com/ExternalDocuments/ExternalDocumentUpload.aspx?hjgbasdjfjsggfsdf

我想为ExternalDocuments/ExternalDocumentUpload.aspx提供简短的内容。我不想缩短整个网址。

2 个答案:

答案 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,我使用过这里的那个:

http://www.iis.net/download/URLRewrite

答案 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,但您可以创建更复杂的逻辑。