У меня есть несколько поддоменов во внутренней сети моей компании. Я настраиваю каждый поддомен вручную. Я бы хотел, чтобы некоторые поддомены создавались автоматически.
Например, если у меня есть / home / jason / foo и / home / jason / bar, я хочу иметь возможность перейти на foo.jason.mydomain.local и bar.jason.mydomain.local без необходимости вручную настраивать их поддомены. (Часть "jason" можно жестко запрограммировать; я просто хочу, чтобы часть "foo" / "bar" была автоматической.)
я обнаружил эта страница, что, кажется, в значительной степени то, что я хочу, но я не могу преодолеть разрыв между их примерами и тем, что я делаю. Кто-нибудь может мне помочь?
Спасибо, Джейсон
Я ответил на свой вопрос.
Вот что я вложил в свою конфигурацию Apache:
<VirtualHost *:80>
VirtualDocumentRoot /var/www/hosts/%0
ServerName jason.mydomain.local
ServerAlias *.jason.mydomain.local
</VirtualHost>
Затем в / var / www / hosts я помещаю каталог с именем jason.mydomain.local. Это все, что нужно.
В этом примере ... они используют полное доменное имя ... и настраивают сайт по умолчанию, который извлекается из подпапки. В основном ... все, что направлено на этот IP-адрес, будет искать папку с соответствующим именем в качестве имени DNS. то есть test.local.com будет преобразован в /somewhere/test.local.com/
Я не уверен на 100% ... но я считаю, что любой сайт, на котором нет папки /where / _______ /, вызовет ошибку ... а не веб-сайт по умолчанию.
На самом деле есть несколько разных способов реализовать это. (как описано на той странице, которую вы связали)
Использование mod_rewrite ... эффективно перепишет URL-адрес на другой путь, чем ожидалось. то есть test.somewhere.com перепишет адреса на что-то вроде www.something.com/test.something.com/ (вы можете заставить его работать в обоих направлениях, чтобы конечный пользователь никогда не видел domain.com/sub-domain. com URL ... но для разрешений и такого рода apache видит это таким образом.) с этой моделью ... у вас будет папка sub-domain.com (или псевдоним) в корне вашего документа для этого сайта.
Использование mod_vhost_alias работает аналогично ... но делает предположения, которые не всегда работают. т.е. я не думаю, что у вас может быть корень "по умолчанию" .... куда сбрасывается все, что не соответствует. но test.domain.com и test2.domain.com будут автоматически сопоставлены с /somedirectory/test.domain.com и /somedirectory/test2.domain.com соответственно.
Главное, на что следует обратить внимание, - это переменные, используемые в конфигурации. $ 0 переводится в полное доменное имя запрашиваемого сайта. т.е. VirtualDocumentRoot / www /% 0 / автоматически сбрасывает вас в каталог /www/some.domain.com/ (при переходе на some.domain.com), и мод-перезапись будет соответствовать шаблону на нем, а также переписать путь к чему-либо каталог.