У меня лишь смутное представление о правильной терминологии, которую следует использовать в этом вопросе, поэтому, пожалуйста, не стесняйтесь помочь мне, разъяснив ее.
У меня есть настройка vhost. Идея состоит в том, что я хочу использовать подстановочный знак для маршрутизации всех запросов для root.TERM.lh
к /TERM/
корень документа.
Приведенная ниже настройка правильно распознает домены и соответствующим образом направляет их, но не преобразует% 1 в корне документа в TERM. Например, журнал ошибок Apache сообщает мне, что для запроса на root.mywebsite.lh он пытается перенаправить на /Users/hollsk/Dev/websites/%1
, поэтому он интерпретирует его как буквальную строку.
Мой синтаксис неверен или мне не хватает какого-то модуля?
NameVirtualHost *
<VirtualHost *>
ServerName root.%1.lh
ServerAlias root.%1.lh
DocumentRoot /Users/hollsk/Dev/websites/%1/
</VirtualHost>
Этот стиль конфигурации требует использования дополнительного модуля, а не основных директив виртуального хостинга.
См. VirtualDocumentRoot здесь: http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html
Мой синтаксис был немного неправильным.
NameVirtualHost *
<VirtualHost *>
ServerName root.%2.lh
ServerAlias root.%2.lh
DocumentRoot /Users/hollsk/Dev/websites/%2/
</VirtualHost>
Обратите внимание %2
вместо того %1
- все еще не уверен, почему %1
интерпретировался буквально (а не как строка root
, чего я и ожидал), но изменение на правильный дескриптор в любом случае устранило проблему.