Is it possible in PHP to know if a user has been 301 redirected to my website?
So in myoldsite.com I have a 301 redirect in the .htaccess file to mynewsite.com.
Can I place some PHP code in mynewsite.com to recognise when a user has been 301 redirected? I just need this to display a specific message if this is the case.
Many thanks for any pointers here :-)
I believe with 301-redirects the HTTP_REFERER
field will contain the original referer:
- User enters oldsite.com in address bar and 301 redirected to newsite.com
- User is visiting 3rdparty.com, clicks a link pointing to oldsite.com and 301 redirected to newsite.com
This behavior somewhat makes sense for 301 redirects.
Solution: I think you should add a query-string parameter to your 301 response such as ref=oldsite
and check its value on your new website.
If you are concerned about having query string parameters in your URLs, you can tell search engines to ignore specific query string parameters. The procedure varies with search engines. Apparently there is a trick that works across all major search engines: the <link rel="canonical">
tag. Examples:
http://newsite.com/?ref=oldsite
http://newsite.com/?ref=oldsite&page=main
and
http://newsite.com/?page=main&ref=oldsite
http://newsite.com/?page=main