@Golmaal realmente respondeu isso, estou apenas sendo um pouco mais prolixo.
<style type="text/css">
#warning-message { display: none; }
@media only screen and (orientation:portrait){
#wrapper { display:none; }
#warning-message { display:block; }
}
@media only screen and (orientation:landscape){
#warning-message { display:none; }
}
</style>
....
<div id="wrapper">
<!-- your html for your website -->
</div>
<div id="warning-message">
this website is only viewable in landscape mode
</div>
Você não tem controle sobre o usuário movendo a orientação, no entanto, você pode pelo menos enviar uma mensagem a ele. Este exemplo irá ocultar o invólucro se estiver no modo retrato e mostrar a mensagem de aviso e, em seguida, ocultar a mensagem de aviso no modo paisagem e mostrar o retrato.
Não acho que essa resposta seja melhor do que @Golmaal, apenas um elogio a ela. Se você gostou desta resposta, certifique-se de dar o crédito a @Golmaal.
Atualizar
Tenho trabalhado muito com o Cordova recentemente e descobri que você PODE controlá-lo quando tem acesso aos recursos nativos.
Outra atualização
Então, depois de lançar Cordova, é realmente terrível no final. É melhor usar algo como React Native se você quiser JavaScript. É realmente incrível e sei que não é pura web, mas a experiência pura da web em dispositivos móveis meio que falhou.