Apache Multiple VirtualDocumentRoot для одного домена с подстановочными знаками *.dev

Я работаю с Virtualhosts и локальным доменом общего охвата, и мне нужно 3 варианта использования для одновременной работы, но до сих пор я смог заставить работать только два.

Мне нужно для трех разных тестовых доменов, чтобы иметь доступ к корню соответствующего документа.

  1. Случай 1: test1.dev -> /path/to/www/SomeFolderName (переопределение с использованием собственного уникального имени папки и файла virtualhost)

  2. Случай 2: *.dev -> /path/to/www/%0 (полный URL, включая.dev, поэтому test2.dev указывает на /path/to/www/test2.dev)

  3. Случай 3: *.dev -> /path/to/www/%1 (полный URL, исключая.dev, поэтому test3.dev указывает на /path/to/www/test3)

Итак, мне нужны две ситуации подстановки для любого домена, как test2.dev или test3.dev, используйте VirtualDocumentRoot "/path/www/%0" если он существует или VirtualDocumentRoot "/share/www/%1" если это существует вместо.

Прямо сейчас, случай 2 или случай 3 работает в зависимости от того, что загружается первым, но не оба одновременно. Как я могу 1 поймать весь домен выбрать только существующий корень документа?

2 ответа

В действительности не поддерживается, чтобы Apache изменял корень документа в зависимости от того, существует ли каталог на самом деле. Я думаю, вам повезет стандартизировать корни документа, чтобы они все /share/www/testX.dev и создание символических ссылок из /share/www/testX.dev в /share/www/testX когда необходимо. Вы даже можете создать символические ссылки из собственного обработчика 404.

Вместо этого вы можете попытаться использовать один корень документа для всех каталогов и проверить mod_rewrite на наличие папок и / или файлов (используя RewriteCond с -f или же -d как CondPattern) и перепишите URL-адреса, чтобы получить нужные файлы. Это будет работать с подстановочными доменами и иметь довольно гибкие правила, в какой папке использовать, когда.

Другие вопросы по тегам