Вот
тут описаны три способа это сделать. В каждом есть плюсы и минусы.
Скрипт работает только в полноэкранном режиме браузера, что лишает человека возможности внешней браузерной навигации. Сайт превращается в подобие приложения, где есть только внутренняя навигация по сайту.
Вариант с CSS крайне сложный. Сам поворот делается парой строк, но если ваш сайт адаптивный на media-запросах, зависящих от ширины экрана, то придётся переписывать все стили, т.к. при повороте сайт поворачивается в обратную сторону, и типа, всё норм. Но из-за изменения размеров экрана срабатывают адаптивные стили и все ломается.
Ну а третий вариант с просьбой не переворачивать телефон (или повернуть его как надо) похож на тот молдавский вирус, который просит пользователя удалить что-нибудь важное на своём компьютере, т.к. у его создателя нет денег, чтобы написать нормальный вирус.