Если вы можете распознать 100%, является ли пользователь внутренним или внешним (например, настроить список с внутренними учетными записями пользователей), вы можете использовать только интернет-сайт и перенаправлять внутренних пользователей на внутренний IP-адрес послеони вошли в систему .Я думаю, что они будут использовать сайт только через Интернет, пока не войдут в систему.Не забывайте, что при перенаправлении пользователей с example.com на 192.168.1.99 все файлы cookie будут «потеряны», сеанс пользователя будет очищен, и вам нужно как-то решить его (например, перенаправить на локальный сайт с помощьюмагический параметр, который повторно инициализирует сеанс на сервере 192.168.1.99).
У него есть один вывод: ваши пользователи, указанные как внутренние, не могут использовать сайт из другого места, скажем, изГлавная.Это можно решить, разместив для них (и только для них) прямую ссылку после входа в систему («нажмите здесь, если вы не в офисе»), что заставляет пользоваться интернет-сайтом(example.com), или вы можете решить ее с помощью JavaScript (запрашивая некоторые данные с помощью AJAX из 192.168.1.99, и в случае сбоя не перенаправляйте пользователя на 192.168.1.99 - возможно, это немного сложнее).
Изменить, предложенный @glglgl: Проверьте IP-адрес клиента, чтобы увидеть, был ли запрос инициирован из локальной сети или через Интернет.(См. Комментарии.)