我是一个完整的服务器pipe理新手,所以我甚至不知道我是否在正确的地方张贴这个。 如果这似乎是一个不好的问题,请正确回答。 谢谢。
我一直在想如何网站如URL缩短工作。 例如,一个stream行的服务bit.ly缩短的url如下所示: http://bit.ly/2bgrkx : http://bit.ly/2bgrkx
我的问题是,他们的服务器怎么设置来处理这些url的唯一简码在最后? 而且,如何在IIS环境中执行这个处理,当然还有一个不同的目的,而不是URL的缩短。 例如,我也看到了twtvite.com与这些url做了什么。
我认为,他们可能会创build虚拟目录redirect,但这似乎有点太不寻常。
非常感谢,我希望这个问题不要太过分。
大多数URl简称是这样工作的 – 所有不请求CSS /或其他静态文件的请求都被路由到脚本,从而find了来自短URL标识符的相应的真实URL。
然后有两种方法:a)发送HTTP头,命令浏览器redirect。 最stream行的select是302发现。 根据HTTP规范,它的临时redirect,但大多数浏览器实现,作为permamentredirect。 更好的select是301移动permamently。 b)发送带有META标签的HTML文档,这个标签说浏览器要redirect。 大多数情况下,这是一个坏主意,因为所有的redirect将是临时的,有效的HTML文档比简单的HTTP头更耗费带宽。正确的方法是在协议而不是内容级别执行此类操作。
如果你想看看具体的URL缩短服务是如何工作的,你可以使用Firebug( https://addons.mozilla.org/en-US/firefox/addon/1843 )来查看所有的请求,以及HTTP头的响应。
在Apache中,你可以使用mod_rewrite重写URL,在IIS中 – http://www.isapirewrite.com/(proabaly有更好的解决scheme,但我不是活跃的IIS用户)。
你可以看到这个关于URl缩写的维基百科文章,以及关于如何实现它的文章 。
PS:最好不要使用可预测的缩短algorithm。
希望这可以帮助。
你想看看URL别名。 我不知道如何在IIS中做,因为我是一个Apache用户。
在我的文章( Maxwell指出)中,我使用IIS&404redirect来创build一个URL缩写 。
为什么你会说这是不切实际的?
编辑:只要看到这个 ,通过Lifehacker。
两个简单的方法来做到这一点:
1)使用HTTP头redirect:在PHP中可以这样做:
header ("Location: http://example.com/");
我不确定这是哪个HTTP代码生成,但它已经为我工作。 更多关于PHP.net网站的信息 。 这里是一些ASP信息 。
2)使用HTML元标记刷新到新的位置。
<meta http-equiv="refresh" content="0;url=http://example.com/" />
有关元标记的更多信息,请参阅此维基百科文章。