URL缩短器没有预览目标页面

本文关键字:目标 URL | 更新日期: 2023-09-27 18:07:53

我正在创建一个内部(链接仅来自我们的网站)网址缩短服务。当我使用bit .ly或tinyurl这样的服务,然后将缩短的链接发布到facebook时,就会显示目标的预览(完整链接)。当我尝试对自己的页面执行此操作时,它会显示重定向页面。

例如http://youtu.be/2323会映射到http://www.youtube.com/watch?v=123456,但是我的链接

http://exam.pl/2323将显示http://exam.pl/Redirect.aspx而不是数据库中的实际页面。我需要在服务器上重定向吗?

感谢

更新:使用如下答案中的HttpHandler解决。我改变了回应,因为显然回应。重定向会自动发送302状态,而301更正确。

context.Response.Status = "301 Moved Permanently";
context.Response.AddHeader("Location", httplocation);
context.Response.End();

URL缩短器没有预览目标页面

我建议使用http处理程序而不是实际页面来进行重定向http://support.microsoft.com/kb/308001

我还建议您提供适当的301 http状态http://en.wikipedia.org/wiki/HTTP_301

更新:(这是来自内存的purley,可能无法按原样编译)

public class IISHandler1 : IHttpHandler
    {
        public bool IsReusable
        {
            get { return true; }
        }
        public void ProcessRequest(HttpContext context)
        {
            string url = content.Request.Url.ToString();
            string newUrl = Translate(url);
            context.Response.ResponseCode = 301;
            context.Response.Redirect(newUrl);
        }
    }

你的模块在处理程序之后被处理,所以你应该在处理程序中处理请求。如果无法处理,那就忽略它,让它通过