มีวิธีในการติดตามการเปลี่ยนเส้นทางด้วยบรรทัดคำสั่ง cURL หรือไม่


456

ฉันรู้ว่าในสคริปต์ PHP:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

จะติดตามการเปลี่ยนเส้นทาง มีวิธีในการติดตามการเปลี่ยนเส้นทางด้วยบรรทัดคำสั่ง cURL หรือไม่

คำตอบ:


762

ใช้การตั้งค่าสถานะส่วนหัว:

curl -L <URL>


1
วิธีนี้ใช้ไม่ได้กับการตรวจสอบสิทธิ์กับ Google เพื่อเข้าถึงสเปรดชีต : /
fatuhoku

13
man curl: "เมื่อใช้การตรวจสอบความถูกต้อง Curl จะส่งข้อมูลรับรองไปยังโฮสต์เริ่มต้นเท่านั้น <... > ดูเพิ่มเติม - เชื่อถือได้ในการเปลี่ยนวิธีนี้"
hudolejev

25

ฉันมีปัญหาที่คล้ายกัน ฉันกำลังโพสต์วิธีแก้ปัญหาของฉันที่นี่เพราะฉันเชื่อว่ามันอาจช่วยหนึ่งในผู้แสดงความคิดเห็น

สำหรับฉันสิ่งที่เป็นอุปสรรคคือหน้านั้นจำเป็นต้องเข้าสู่ระบบแล้วให้ URL ใหม่ผ่านทางจาวาสคริปต์ นี่คือสิ่งที่ฉันต้องทำ:

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

โปรดทราบว่า j_username และ j_password เป็นชื่อของเขตข้อมูลสำหรับแบบฟอร์มการเข้าสู่ระบบของเว็บไซต์ของฉัน คุณจะต้องเปิดแหล่งที่มาของหน้าเว็บเพื่อดูว่า 'ชื่อ' ของฟิลด์ชื่อผู้ใช้และ 'ชื่อ' ของฟิลด์รหัสผ่านในกรณีของคุณคืออะไร หลังจากนั้นฉันไปที่ไฟล์ html ที่มีจาวาสคริปต์ซึ่งฝัง URL ใหม่ หลังจากแยกวิเคราะห์สิ่งนี้เพียงส่งใหม่ด้วย URL ใหม่:

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


15

ตามที่ได้กล่าวไว้ในการติดตามการเปลี่ยนเส้นทางคุณสามารถใช้การตั้งค่าสถานะ-Lหรือ--location:

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

แต่ถ้าคุณต้องการ จำกัด จำนวนการเปลี่ยนเส้นทางให้เพิ่มพารามิเตอร์--max-redirs

--max-redirs <num>

กำหนดจำนวนสูงสุดของการติดตามการเปลี่ยนเส้นทางที่อนุญาต ถ้า-L, --locationมีการใช้ตัวเลือกนี้สามารถนำมาใช้เพื่อป้องกันไม่ให้ขดจากการติดตามการเปลี่ยนเส้นทาง "ในการหัวเราะ" โดยค่าเริ่มต้นขีด จำกัด ถูกตั้งค่าเป็น 50 การเปลี่ยนเส้นทาง ตั้งค่าตัวเลือกนี้เป็น -1 เพื่อทำให้ไร้ขีด จำกัด หากใช้ตัวเลือกนี้หลายครั้งตัวเลือกสุดท้ายจะถูกใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.