Get Redirect URL with cURL

By  on  

URL redirects can be glorious or annoying depending on which side of them you are on and which side you want to be on.  Redirects are helpful for vanity URLs (useful in advertising) but sometimes they're annoying in that they could potentially break your code if you encounter a redirect you weren't anticipating.

The useful and amazing cURL command line utility allows you to fetch an address and return its final destination URL:

# "/css" doesn't exist but WordPress tries to find the closest match
# and then redirects to it ("/css-animation-callback")

curl -Ls -w %{url_effective} -o /dev/null https://davidwalsh.name/css

# Outputs: https://davidwalsh.name/css-animation-callback

The url_effective variable is what we're after.  The L directive tells cURL to follow redirects, the s directive tells cURL to be silent (i.e. not output the page contents).  You provide the URL, cURL follows it to its endpoint -- easy!

Recent Features

  • By
    CSS Gradients

    With CSS border-radius, I showed you how CSS can bridge the gap between design and development by adding rounded corners to elements.  CSS gradients are another step in that direction.  Now that CSS gradients are supported in Internet Explorer 8+, Firefox, Safari, and Chrome...

  • By
    Designing for Simplicity

    Before we get started, it's worth me spending a brief moment introducing myself to you. My name is Mark (or @integralist if Twitter happens to be your communication tool of choice) and I currently work for BBC News in London England as a principal engineer/tech...

Incredible Demos

  • By
    Web Audio API

    The Web Audio API allows developers to load and decode audio on demand using JavaScript.  The more I evaluate awesome games for Firefox OS TVs, the more I get to learn about these APIs that I normally wouldn't touch.  The following is a very basic introduction to the WebAudio API...

  • By
    Simple Image Lazy Load and Fade

    One of the quickest and easiest website performance optimizations is decreasing image loading.  That means a variety of things, including minifying images with tools like ImageOptim and TinyPNG, using data URIs and sprites, and lazy loading images.  It's a bit jarring when you're lazy loading images and they just...

Discussion

  1. J-K. Solbakken

    Follow a URL using JavaScript: https://www.npmjs.com/package/linkfollower

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!