В настоящее время существуют четыре версии происхождения выражения "наставить рога":
1) Византийский император Андроник Комнин (1183-1185) разрешал мужьям тех женщин, с которыми имел любовные связи, охотиться в его зверинце. На воротах тех, кто имел такое преимущество, выставлялись оленьи рога. Шутя о таком человеке говорили, что у него рога на лбу. Выражение попало в русский язык через посредство греческого или французского языка.
2) Слово заимствовано из немецкого и восходит к военному снаряжению древних германцев.
Провожая мужа на войну, жена надевала ему на голову шлем с рогами. На языке женщин надеть мужу рога означало снарядить мужа в поход и остаться свободной.
3) Из мифа об Актеоне, который подсматривал за купающейся богиней Дианой и за это был превращен ею в оленя. Актеон употребляется в значении "рогоносец, обманутый муж".
4) В немецком императорском указе 1427 г. запрещается пребывание в армии с женой; преступивший этот запрет должен был носить рога.
Источник: Форумы на "Эхе москвы" , Портал "Грамота.РУ"
Дополнительная информация:
Миф об Актеоне
Французский сатирический рисунок, изображающий рогоносцев