Forum Moderators: phranque
There's really no way to detect that another server did a 302 to redirect the client browser to your site. The incoming request appears as a new request from that client, with no "history" -- as you surmised.
The only option I could think of was to unconditionally redirect all pages which have been stolen to a new URL -- Basically, change the names of the hijacked pages and then 301-redirect to them. If a home page was concerned, then redirect "/" to something like /index.html, or redirect it to a new subdomain.
I proposed this as a possible solution for the hijacked sites to try, but a later post in that thread indicated that someone had already tried it, and unfortunately, it did not help.
It's interesting that Google uses tracking-image-based JavaScript click-tracking in their own search results to avoid this very problem. Looking back, we should have taken that as a hint.
So, it comes down to Google and Yahoo to get their redirection-handling problems fixed. It is amazing that the problems have been allowed to persist so long already.
Jim