Заголовок referrer находится в ведомости браузера, и браузер не разрешит серверу (или же чужой странице клиента) менять referrer клиента из соображений безопасности.
Как минимум можно сделать через meta refresh, который запишет туда страницу, где был этот тэг.
Но так или иначе, у меня есть бд, куда я пишу все реферы, и там попадаются реферы, которые не являются адресами страниц, значит как-то это делается.
Алексей Алюшенко: meta refresh требует доступа к странице, откуда делается запрос.
> и там попадаются реферы, которые
Это делается не браузером. Услуга есть такая: referrer spam.
Любой клиент может отправить любой referrer, но браузер не даст так сделать чужой веб-странице.