CURLOPT_REFERER у вас указан верно, но Вы пытаетесь вернуть в Location $data, а вам туда надо вернуть ссылку.
Например как получить 301 Location по прямой ссылке на которой настроен 301 редирект:
<?php
function getLocation($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (in_array($http_code, [301, 302])) {
if (preg_match('~Location: (.*)~i', $data, $match)) {
return trim($match[1]);
}
}
return $url;
}