Follow URL Redirect Checker

path) > 0) { $steps = count($request->path) - 1; $count = ($steps == 1) ? '1 redirect' : $steps.' redirects'; echo "

Final destination

The URL you traced had ".$count." and ended here:

getFinalRedirect()."\" target=\"blank\"> ".$request->getFinalRedirect()."

Redirect trace

"; foreach ($request->path as $step) { $item = $step['step']; $url = $step['url']; $code = $step['code']; $next = ($step['next']) ? '⥂⇄↩︎' : '✓'; echo " "; } echo "
Step Request Code
".$item." ".$url." ↗︎ ".$code." ".$next."
User agent: ".$request::USER_AGENT."
"; } else { echo "

Trace a URL's redirects

Enter a URL in the search box above to derive the final resolved URL after all redirects. The script runs recursive cURL requests until we get a 200 status code. This is helpful to get around link tracking or original URLs that Pi-hole outright blocks (like email links).

I used to use wheregoes.com which is a good, reliable service, but decided to roll my own for privacy reasons. Absolutely nothing is logged as all URL searches are via POST and that's not currently included in my nginx logs.

Technical details

User agent

Other cURL settings

"; } ?>