Назад | Перейти на главную страницу

Как настроить несколько каталогов на Apache?

Я работаю над ubuntu с apache2.

Требования

  1. Корневой каталог должен обслуживаться из определенной папки. Когда кто-то обращается http://mysite.com/foo1 он должен достичь /var/www/tld/foo1
  2. Другие каталоги в качестве подсайтов: когда кто-то получает доступ http://mysite.com/subsite/foo2 он должен достичь /var/www/subsite/foo2
  3. Я хотел бы иметь возможность настраивать определенные ярлыки для некоторых действий. Например. добавив собственное правило, я бы хотел http://mysite.com/foo3 достигать http://mysite.com/subsite/foo3 (в отличие от №1, это не глобально, а просто путем добавления определенных маршрутов).

Как лучше всего этого добиться? Должен ли я иметь другой файл в apache/site-enabled на "дочерний сайт"? Или я должен использовать <Directory>? Как мне настроить mod_rewrite для достижения этой цели?

Виртуальный хост имеет только один корень документов; Apache не имеет понятия «дочерние сайты».

Документация по хостингу

Вы можете сделать исключения из этого, добавив псевдоним, указывающий на расположение файловой системы. вне корень документа, но позаботьтесь о том, в каком порядке вы их определяете: первое совпадение побеждает, поэтому вам следует упорядочить их от наиболее конкретных к наименее конкретным.

Документация по псевдониму

Последний вопрос больше касается плохого макета сайта, но вы можете сделать для него перенаправление:

Redirect /foo3/ /subsite/foo3/

В apache нет модуля с именем mod_routing.

Если все URL-адреса размещены в одном домене / IP-адресе, вы можете использовать mod_rewrite для перезаписи URL-адресов в соответствии с указанными вами правилами.