微小的URL重定向在浏览器中工作,但是从curl返回200而不是301

时间:2014-08-18 03:42:43

标签: curl tinyurl

这对我来说很奇怪,可能是我错过了一些明显的东西。以下是一个小样本:

http://tinyurl.com/67lwfe

适用于我的浏览器,可以正确地重定向到所需的页面。但是,当我尝试使用curl时,如下所示:

curl -I http://tinyurl.com/67lwfe

它响应200而不是3xx响应。我认为该页面可能正在使用元刷新html标记进行响应,所以我尝试了:

curl http://tinyurl.com/67lwfe

但它没有html或元刷新标签,因此无效。所以我的问题是浏览器如何正确地重定向?我也尝试过设置浏览器代理而没有运气。我错过了一些明显的东西吗?

2 个答案:

答案 0 :(得分:2)

这是一个古老的问题,但我认为自从今天遇到这个问题并且首先来到这里后,我才更新答案。

-L标志跟随重定向。这适用于Centos 6,Centos 7和OSX 10:

curl -L http://mytinyurl.com/67lwfe -o marketing.html

抱歉,显然不太喜欢tinyurl。

答案 1 :(得分:1)

tinyurl似乎最初为<meta http-equiv="Refresh">提供200,然后为后续请求提供301秒,以便它可以设置cookie(其中两个!),运行大量跟踪脚本,并且通常会让人们放慢脚步。

也就是说,tinyurl糟透了,所有URL缩短器也是如此。好问题。