Проскуряков Андрей, а можно ссылочку на какой-то документ от компании 1С-Битрикс, где такое написано? Например, в официальном курсе только про 8.1 сказано
Я реализовал небольшой хак через rewrite в Nginx. Мой метод основан на добавлении в $_SERVER["REQUEST_URI"] дополнительных переменных через Nginx. Далее привожу 2 примера.
Первый пример для HTTP_USER_AGENT:
В секции для нужного хоста в Nginx добавляю:
if ($http_user_agent ~* "mobile")
{
rewrite ^/composite_test/$ /composite_test/?MOBILE=Y break;
}
В случае с мобильным браузером в Apache уходит url с дополнительным параметром MOBILE=Y и в $_SERVER["REQUEST_URI"] будет /composite_test/?MOBILE=Y, при этом url в браузере останется /composite_test/.
Важно делать это через Nginx, а не Apache. Битрикс использует $_SERVER["REQUEST_URI"] для построения ключа композитного кеша и не использует $_SERVER["QUERY_STRING"].
Если использовать mod_rewrite в Apache, то MOBILE=Y попадёт в $_SERVER["QUERY_STRING"], а $_SERVER["REQUEST_URI"] останется таким же.
Второй пример для COOKIE:
Nginx поддерживает cookie и можно написать условие вида:
if ($cookie_VARNAME = 1)
{
rewrite ^/composite_test/$ /composite_test/?VARNAME=1 break;
}
С cookie правда есть нюанс, что их ещё нужно установить, для этого возможно потребуется сделать страницу, без композитного кеша, которая будет эти куки ставить. Это зависит от требуемой логики.
В целом можно использовать любые переменные доступные в Nginx и таким образом формировать разные url для Apache.
Я привел базовые примеры, которые можно адаптировать под нужды конкретного проекта. Правда замечу, что необходимо иметь доступ к настройкам Nginx на сервере.
Данная методика подходит для простейших условий. Если требуется полноценная логика и расчёты, то нужно использовать композит с динамическими областями, как это и задумано логикой продукта.
Проскуряков Андрей, /bitrix/header.php - файл ядра. Править его не стоит. На каждую страницу поставил: по проекту регуляркой прошёл с кодом подключения. Кстати, оказалось очень полезным иметь файлик до подключения хедера. Рекомендую.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».