Ein 301 löst keinen Referrer aus. Wenn von Domain A auf Domain B gelinkt wird, die per 301 auf Domain C weiterleitet, so erscheint bei Domain C als Referrer die verweisende Seite von Domain A. Domain B taucht im Referrer nicht auf (außer es werden spezielle Header eingesetzt, die aber auch nicht im Referrer Header landen, sondern gesonderte Header darstellen, wie beispielsweise von United Domains X-UDAG Redirect Header).
Bei Direkteingaben ist der Referrer eh leer. Damit kann auch man nicht auf die Domain schließen, die per 301 weitergeleitet wird. Wenn man da also wirklich tracken will, muss man sich eine eigene Lösung programmieren, die sowohl das Tracking als auch die Weiterleitung übernimmt oder auf die Serverlogs der per 301 weiterleitenden Domains zurückgreifen.