У меня есть 3 веб-сайта, работающих на одном сервере (один IP), каждый с несколькими поддоменами. Файл httpd.conf довольно большой, с несколькими тегами VirtualHost для каждого поддомена. Вместо того, чтобы добавлять в httpd.conf каждый раз, когда я добавляю новый сайт или новый субдомен, я хотел бы, чтобы он динамически настраивался. Вот макет ...
сайты расположены
/var/www/html/[ownername]/[domain]/[subdomain]
поэтому я хочу, чтобы "sub.domain.com" указывал на
/var/www/html/theowner/domain.com/sub
и я хочу, чтобы this.otherdomain.org указывал на
/var/www/html/someowner/otherdomain.org/this
Как мне сделать это в моем файле httpd.conf? Спасибо.
Если вы не хотите создавать структуру каталогов на основе владельца сайта, вы можете легко сделать это с помощью Apache2 vhost_alias модуль. Я использовал это в прошлом. Чтобы основывать это на другом, как вы описываете в своем вопросе, вам нужно будет немного пофантазировать mod_rewrite записи, но, скорее всего, он не будет полностью динамическим и потребует настройки для активации.
Похоже, работа для mod_vhost_alias:
В apache2 включены различные опции массовый виртуальный хост документация. В вашем случае mod_rewrite
решение может сработать для вас.
Другой способ добиться этого - использовать такой инструмент, как puppet, для управления как структурой папок, так и файлами vhost. Вы можете легко написать или даже найти модуль vhost для этого. Затем вы используете каталог conf.d для хранения всех ваших файлов vhost.