Apache Multiple VirtualDocumentRoot для одного домена с подстановочными знаками *.dev
Я работаю с Virtualhosts и локальным доменом общего охвата, и мне нужно 3 варианта использования для одновременной работы, но до сих пор я смог заставить работать только два.
Мне нужно для трех разных тестовых доменов, чтобы иметь доступ к корню соответствующего документа.
Случай 1: test1.dev -> /path/to/www/SomeFolderName (переопределение с использованием собственного уникального имени папки и файла virtualhost)
Случай 2: *.dev -> /path/to/www/%0 (полный URL, включая.dev, поэтому test2.dev указывает на /path/to/www/test2.dev)
Случай 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-адреса, чтобы получить нужные файлы. Это будет работать с подстановочными доменами и иметь довольно гибкие правила, в какой папке использовать, когда.