Назад | Перейти на главную страницу

Установка DocumentRoot по значению cookie

Я пытаюсь обслуживать другой контент (другой DocumentRooot) для запросов, содержащих особое значение cookie.

При использовании nginx это было довольно просто:

set $newroot "oi-dev";

if ($cookie_interface = "ni") {
    set $newroot "ni-dev";
}

и позже: root /path/to/document/$newroot;

К сожалению, попытка воссоздать такой эффект в Apache (с использованием 2.4) не работает должным образом.

<If "%{HTTP_COOKIE} =~ /interface=ni/">
    Header set droot-matched true
    Define Droot /path/to/document/ni-dev
</If>
<Else>
    Define Droot /path/to/document/oi-dev
</Else>
DocumentRoot ${Droot}

Это странно, потому что заголовок элемента управления (droot-matched) отправляется, когда установлен правильный файл cookie, но Apache по-прежнему использует ${Droot} значение от <Else> раздел как DocumentRoot.

Я тоже попытался удачи с VirtualDocumentRoot, но результат был точно таким же.

Я упускаю что-то очевидное или есть другой метод достижения описанного эффекта в Apache?