我知道在php脚本中:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

将遵循重定向。是否有一种方法跟随重定向命令行cURL?


当前回答

使用location头标志:

curl -L <URL>

其他回答

如前所述,要遵循重定向,您可以使用标记-L或——location:

curl -L http://www.example.com

但是,如果你想限制重定向的数量,可以添加参数max-redirs

——max-redirs < num > 设置允许重定向跟踪的最大数量。如果使用-L,——location,则此选项 可以用来防止curl跟随“荒谬”的重定向。缺省情况下,限制 设置为50重定向。将此选项设置为-1以使其无限制。 如果多次使用此选项,则将使用最后一个选项。

我也遇到过类似的问题。我在这里发布我的解决方案,因为我相信它可能会帮助到一位评论者。

对我来说,障碍是页面需要登录,然后通过javascript给我一个新的URL。以下是我必须做的:

curl -c cookiejar -g -O -J -L -F "j_username=username" -F "j_password=password" <URL>

注意,j_username和j_password是我的网站登录表单字段的名称。你必须打开网页的源代码,看看在你的情况下用户名字段和密码字段的“名称”是什么。 之后,我去一个html文件与java脚本,其中新的URL被嵌入。解析后,只需重新提交新的URL:

curl -c cookiejar -g -O -J -L -F "j_username=username" -F "j_password=password" <NEWURL>

使用location头标志:

curl -L <URL>