Follow Redirects with cURL
I love playing around with cURL. There's something about loading websites via command line that makes me feel like some type of smug hacker, just like tweeting from command line does.
I recently cURL'd the Google homepage and saw the following:
curl google.com
#<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
#<TITLE>301 Moved</TITLE></HEAD><BODY>
#<H1>301 Moved</H1>
#The document has moved
#<A HREF="http://www.google.com/">here</A>.
#</BODY></HTML>
I found it weird that Google does the initial redirect but I still want to get the source of the Google homepage with cURL, as with any site that may do a redirect without you noticing. Luckily it's just a single flag:
curl -L google.com
#<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en">...
The -L flag instructs cURL to follow any redirect so that you reach the eventual endpoint. Those tiny redirects are just noise anyways, right?
![9 More Mind-Blowing WebGL Demos]()
With Firefox OS, asm.js, and the push for browser performance improvements, canvas and WebGL technologies are opening a world of possibilities. I featured 9 Mind-Blowing Canvas Demos and then took it up a level with 9 Mind-Blowing WebGL Demos, but I want to outdo...
![CSS 3D Folding Animation]()
Google Plus provides loads of inspiration for front-end developers, especially when it comes to the CSS and JavaScript wonders they create. Last year I duplicated their incredible PhotoStack effect with both MooTools and pure CSS; this time I'm going to duplicate...
![CSS Rounded Corners]()
The ability to create rounded corners with CSS opens the possibility of subtle design improvements without the need to include images. CSS rounded corners thus save us time in creating images and requests to the server. Today, rounded corners with CSS are supported by all of...
![Drag and Drop MooTools File Uploads]()
Honesty hour confession: file uploading within the web browser sucks. It just does. Like the ugly SELECT element, the file input is almost unstylable and looks different on different platforms. Add to those criticism the fact that we're all used to drag and drop operations...
Is there a way to do this outside of the command line in PHP?
The curl-lib in PHP offers an option for that:
And if the url is using/forcing https, set this option before executing the curl:
Please don’t do that, unless you really don’t care about the content of the download. It essentially says “Ignore the SSL errors if it’s broken – trust the same as you would an unencrypted URL.”
The data will still be encrypted, but could be coming from a man-in-the-middle, not from where you thing it’s coming from.
The implementation of curl in PHP has an option for that.
See the following link:
http://stackoverflow.com/questions/3519939/make-curl-follow-redirects
if you liked curl, you’ll love lynx..
I hit an issue with not following redirects myself, but this was a download from a GitHub release download that was redirecting to a S3 bucket. Broke a CLI out in the wild…
In this case, I’m not sure it’s noise (to get at your closing question). I was intentionally not following redirects, as one should not expect this to be happening with GitHub downloads…
I have a support ticket in to see what’s up with this very recent change. Maybe it was a DevOops?