我知道在php脚本中:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
将遵循重定向。有没有办法使用命令行cURL跟踪重定向?
答案 0 :(得分:644)
使用位置标题标记:
curl -L <URL>
答案 1 :(得分:23)
我有类似的问题。我在这里发布我的解决方案,因为我相信它可能有助于其中一位评论者。
对我来说,障碍是该页面需要登录,然后通过javascript给我一个新的URL。以下是我必须做的事情:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>
请注意,j_username和j_password是我网站登录表单的字段名称。您必须打开网页的来源才能看到&#39; name&#39;用户名字段和&#39;名称&#39;在您的情况下密码字段。 之后我去了一个带有java脚本的html文件,其中嵌入了新的URL。解析完后,只需使用新URL重新提交:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>
答案 2 :(得分:4)
如前所述,要遵循重定向,您可以使用标志-L
或--location
:
curl -L http://www.example.com
但是,如果要限制重定向次数,请添加参数--max-redirs
--max-redirs <num>
设置允许的最大重定向数量。如果使用
-L
,--location
,则此选项 可以用来防止curl在“荒谬”中遵循重定向。默认情况下,限制 设置为50重定向。将此选项设置为-1使其不受限制。 如果多次使用此选项,将使用最后一个。