Или правильны оба варианта? Но тогда в чём разница? Правильны оба варианта – и с тем, и с другим предлогом. Можно употреблять любой из них, например: We heard a knock at the door – Мы услышали стук в дверь We heard a knock on the door – Мы услышали стук в дверь Но какая-то разница должна быть! Нет, никакой разницы нет. Это как по-русски – «стук в дверь» и «стук по двери». Да, в русском мы говорим только «стук в дверь», но в английском можно и «по двери» сказать...