Apache: ошибка «Виртуальный хост здесь не разрешен» при использовании условия If - PullRequest
0 голосов
/ 07 марта 2020

У меня есть условие внутри httpd.conf, которое выглядит следующим образом:

<If "-f '/some/path/to/existing/file'">
   <VirtualHost _default:$port1>
     ServerName example.com

     ...config1...
   </VirtualHost>
</If>
</Else>
   <VirtualHost _default:$port1>
     ServerName example.com

     ...config2...
   </VirtualHost
</Else>

Однако, это дает мне синтаксическую ошибку AH00526, которая говорит: «VirtualHost здесь не разрешен». Если я закомментирую условие «Если еще» и выложу VirtualHost за пределы блока, это сработает.

Как я могу это исправить, сохранив условие?

1 Ответ

2 голосов
/ 09 марта 2020

Вы можете попробовать следующее. Вместо использования директив If (которые действительно предназначены для проверки параметров запроса, вы можете попробовать использовать директиву IfFile .

IfFile проверяет, существует ли файл при запуске. Никаких других опций, поэтому вам нужно убедиться, что ваши проверки файлов являются эксклюзивными для каждого сервера.

...