I just happened to have this issue yesterday – redirected to 404 when trying to publish my post. I was going ape trying too see why I could not post. If I put the post in draft mode (unpublish), my blog was up and running. With the post published it would go straight to 404.
I began investigating; a quick search on Google revealed that usually the cause for this has to do with .htaccess – so after saving my original version, I’ve tried different hacks on the file without any success.
Than I’ve looked at the text in the post I was trying to publish. To cut a long story short, the problem was that my text contained exactly the words “/etc/passwd” – and that was preventing me to publish. I guess that is a security feature (never new about it so far) – and I still wonder if that’s implemented by my host or by WordPress…if anyone knows please shed some light.
Anyway, that was the issue in my case, and I hope that this will give you a starting point in tying to see why you cannot post.