Самый простой способ - создать уникальный URL-адрес для доступа из Facebook, например, если ваш веб-сайт www.site.com, затем установите на своем сервере fb.site.com или www.site.com/fb и укажите егов том же месте, что и www.site.com (и, конечно, настройте параметры приложения Facebook, чтобы использовать альтернативный URL).Затем ваш серверный код может легко проверить URL-адрес доступа, чтобы определить, нужно ли форматировать его для Facebook или отдельного веб-сайта.
Другой подход - объединить переменную сеанса на стороне сервера с некоторым JavaScript на стороне клиента.Вы можете установить переменную сеанса, когда получите параметр signature_request, а затем проверять ее при каждой загрузке страницы.Пока переменная сеанса установлена, вы выводите формат iframe и добавляете немного кода javascript на каждую страницу.Javascript проверяет, чтобы убедиться, что страница все еще находится в iframe, используя что-то вроде if (window.self!=window.top) { //inside iframe }
.Если не внутри iframe, это означает, что переменная сеанса устарела, поэтому js переходит на некоторый URL-адрес, который указывает серверу очистить его, а затем повторно отобразить страницу в обычном макете.