+7 495 008 8452 пн.-пт. 10:00 – 17:00
Загрузка...
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Сайт на битрикс окружении и проблемы при работе Яндекс.Вебвизора из-за заголовка X-Frame-Options
Текущая страница сайта загружается в плеер яндекса с помощью iframe. Если ваш сайт защищен от показа в iframe (то есть в настройках сервера используется заголовок X-Frame-Options), собранные данные будут недоступны для просмотра. Чтобы просмотреть данные о посещении сайта, необходимо добавить в настройки сервера исключение для домена webvisor.com и его поддоменов, а также для домена вашего сайта с помощью регулярного выражения. В указанном примере мы это сделаем для домена яндекса webvisor.com и двух других доменов acrit.ru и acrit-studio.ru. Если доменов больше на площадке – делается аналогичным образом в регулярном выражении.


Сперва про настройки nginx

Известно, что двух-уровневая машина битрикс использует в качестве первого веб-сервера nginx,
следовательно многие настройки по редиректам, отдаче необходимых HTTP-заголовков, установке SSL-сертификата и прочего нужно делать в данном nginx.

Настройки веб-сервера доступны по пути /etc/nginx, упрощенно настройки состоят из:
•    основной конфиг /etc/nginx/nginx.conf
•    конфиги всех доступных сайтов, подключенные из меню битрикс-машигы доступны тут: /etc/nginx/bx/site_avaliable

напр. /etc/nginx/bx/site_avaliable/ssl.s1.conf - это конфиг сайта-по умолчанию (/home/bitrix/www) при подключении браузера к нему по https.

•    папка с дополнительными конфигами /etc/nginx/bx/conf
Каждый конфиг сайта использует или может использовать дополнительные файлы из этой папки, которые содержат разные куски общих настроек (для их подключения из других настроек).

Чаще всего для сайтов, напр. /etc/nginx/bx/site_avaliable/ssl.s1.conf подключается файл с общими настройками для всех сайтов /etc/nginx/bx/conf/bitrix.conf и если сайт защищен через SSL, то и подключается /etc/nginx/bx/conf/ssl.conf
Теперь, когда примерно ясно, как организованы настройки сервера nginx на виртуальной машине битрикс, можно настроить выдачу заголовка X-Frame-Options, мешающего работе Яндекс. Вебвизору.

Файл, устанавливающий данные "общие" заголовки для всех сайтов прописан в папке с различными настройками /etc/nginx/bx/conf/general-add_header.conf, а подключается он для всех сайтов в основном файле /etc/nginx/nginx.conf

Редактируем файл /etc/nginx/bx/conf/general-add_header.conf, комментируем строчку с заголовком X-Frame-Options

add_header "X-Content-Type-Options" "nosniff";
#add_header X-Frame-Options SAMEORIGIN;

Далее редактируем файл

/etc/nginx/bx/conf/bitrix_general.conf (в конец добавляем)


# yandex webvisor.com fix
set $frame_options '';
if ($http_referer !~ '^https?:\/\/([^\/]+\.)?(acrit\.ru|acrit\-studio\.ru|webvisor\.com)\/'){
   set $frame_options 'SAMEORIGIN';
}
add_header X-Frame-Options $frame_options;


В данном файле заголовок X-Frame-Options включается для всех остальных доментов, за исключением яндек-вебвизора и всех, описанных в регулярном выражении (в данном случае acrit.ru и acrit-studio.ru):

Перезапускаем nginx –s reload, и проверяем работу вебвизора на сайте яндекса.

Таким образом, чтобы для webvisor.com не отдавался запрещающий заголовок открытия нашего сайта в iframe для работы проигрывателя яндекс.Вебвизора нужно:

1/ в файле /etc/nginx/bx/conf/general-add_header.conf комментируется строчка X-Frame-Options

2/ в конец файла /etc/nginx/bx/conf/bitrix_general.conf нужно добавить строки, не выдающие данный заголовка для webvisor.com, его поддоменов и тоже самое для acrit.ru и acrit-studio.ru


PS увы после обновлении машины старые конфигурации складываются ниже и после обновления битрикс машины требуется проверять, не слетели ли данные настройки.

И их приходится восстанавливать с файлов вида general-add_header.conf.UNIX_TIMESTAMP, которые создаются автоматически при обновлении битрикс машины.

Дополнительные материалы:



Назад в раздел

Подписаться на новые материалы раздела:
Загрузка...