Я работаю над ubuntu с apache2.
Требования
/var/www/tld/foo1
/var/www/subsite/foo2
Как лучше всего этого добиться? Должен ли я иметь другой файл в apache/site-enabled
на "дочерний сайт"? Или я должен использовать <Directory>
? Как мне настроить mod_rewrite
для достижения этой цели?
Виртуальный хост имеет только один корень документов; Apache не имеет понятия «дочерние сайты».
Вы можете сделать исключения из этого, добавив псевдоним, указывающий на расположение файловой системы. вне корень документа, но позаботьтесь о том, в каком порядке вы их определяете: первое совпадение побеждает, поэтому вам следует упорядочить их от наиболее конкретных к наименее конкретным.
Последний вопрос больше касается плохого макета сайта, но вы можете сделать для него перенаправление:
Redirect /foo3/ /subsite/foo3/
В apache нет модуля с именем mod_routing.
Если все URL-адреса размещены в одном домене / IP-адресе, вы можете использовать mod_rewrite для перезаписи URL-адресов в соответствии с указанными вами правилами.