I do the same thing on one site hit by spammers for all pages that allow submissions.
If the referrer isn't my domain name I redirect them the to home page just in case it's a legit user that somehow got a direct link to that page they can still get back.
As an added precaution I do reject all GET requests and reject anyone not accepting my cookies so it you don't have a cookie and aren't using a POST you also get bounced.
So if the referrer is not my domain OR the request is a GET OR they don't have my cookie they get bounced to the index page where they can start over from scratch ;)
Went from annoying amounts of spam to ZERO years ago and I log all attempts and some still try daily but it goes silently away.