2010-04-03 51 views
36

我使用bit.ly来缩短我的网址。 我的问题 - 参数不通过。 让我解释我使用http://bit.ly/MYiPhoneApps哪些重定向(比方说)到http://iphone.pp-p.net/default.aspx 现在,当我尝试http://bit.ly/MYiPhoneApps?param=xx这个参数不会被添加到生成的网址。 我知道我可以创建一个额外的“short url”,包括一个参数 - 所以http://bit.ly/WithParam将导致http://www.mysite.com/somepath/apage.aspx?Par1=yy等等。URL缩短器可以传递参数吗?

但我想要的是有一个简短的网址指向一个页面 - 然后我想为这个缩短的网址添加一个参数 - 哪个(当然)落在我的页面上。

这是一个bit.ly(而其他人也许能够做到这一点) - 或者“参数转发”不适用于301重定向?

曼弗雷德

回答

16

没有技术上的原因,为什么它无法完成。该服务只需查看它正在发送的参数,然后相应地重写目标URL。

问题是,它不一定很好定义如何做到这一点。

假设您的网址为http://example.com/default.aspx?foo=bar,并且其网址为http://foo.com/ABCD。如果您尝试访问http://foo.com/ABCD?foo=baz,应该发生什么?它应该取代价值,所以你得到foo=baz?它应该追加它使foo=bar&foo=baz?如果我们包括两个,他们应该在哪个订单?

系统无法知道哪些参数是安全的覆盖,哪些不是,因为有时候,你的URL都想要的,它可能关系中加入什么顺序的东西。

你可以说“好的,只是不要让这个参数已经存在的URL”,但也有一个问题是它将使这个过程变得更复杂。没有这个,你只需在数据库中查找一个密钥并发送一个重定向头。现在,您还需要分析URL以检查参数,并追加部分被调用的URL。这需要每个重定向更多的系统资源,如果您的服务被频繁使用,这可能会成为一个大问题 - 您需要更多的服务器电源来处理相同数量的重定向。我不认为这种权衡被认为是“值得”的。

+7

我希望它成为'foo = bar&foo = baz',FWIW(添加到短url的参数应该位于long url的所有参数部分之后)。我认为这在大多数情况下会产生理智的结果。 – 2010-04-03 22:03:54

+1

所以它是技术性的(我认为)可能 - 但某种“后勤”或“如何处理”的问题。如果有人知道一个(稳定)服务允许参数添加请让我知道。 – ManniAT 2010-04-04 08:26:25

3

URL缩短同事基于一个完整的URL(参数等等)的唯一密钥,所以它是不可能的参数传递到缩短服务。

通常

http://iphone.pp-p.net/default.aspx?param=10

必须产生一个不同的密钥对

http://iphone.pp-p.net/default.aspx?param=22

“参数转发”简单地是在这些类型的重定向不可能的,因为参数不是有效部分缩短的URL是大多数(如果不是全部的话)服务。

+3

当然它是*可能*。 OP的目的不是让两个目标URL映射到完全相同的短URL - 一个键仍然只映射到一个目标。他只是希望服务使用* additional *信息提供的参数来操作目标。这两件事情完全不同。 – 2010-04-03 22:12:16

+2

当然,这是可能的 - 如果你是服务提供商,并建立你的服务来允许。但是OP在具体讨论bit.ly。并且bit.ly也没有任何其他目前的URL缩短服务,我知道它支持短URL上的参数转发。 – 2010-04-03 22:27:02