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

Как заставить Apache2 перенаправить в подкаталог

Я запускаю apache2 на Debian etch с несколькими виртуальными хостами.

Я хочу перенаправить, чтобы http://git.example.com идет в http://git.example.com/git/

Должно быть очень просто, но Google не совсем справляется. Я пробовал использовать Redirect и Rewrite, но они, похоже, не делают то, что я хочу ...

Чувствую себя немного глупо - еще немного погуглили, и я получил ответ:

RedirectMatch ^/$ /git/

В основном перенаправляем рут, и только рут.

Этот код можно было бы использовать в .htaccess файл (для этого есть тег, поэтому я предполагаю, что это исходный вариант использования). Но если вы можете редактировать, конфигурацию apache основного сервера, затем поместите ее в раздел для своего веб-сайта, вероятно, внутри <VirtualHost> раздел.

В документы для RedirectMatch сказать, что контекст может быть "конфигурация сервера, виртуальный хост, каталог, .htaccess".

У вас есть правильный ответ с перенаправлением. Вы должны быть осторожны при перенаправлении всего в другое место, так как там вы можете получить рекурсивные перенаправления. Это происходит, если вы хотите создать страницу обслуживания.

Вы можете использовать директиву Redirect.

<Directory />
   Redirect permanent / http://git.example.com/git/
   ...
</Directory>

Принятый ответ решил мою проблему, но я также обнаружил, что мне пришлось добавить перенаправление 404 для несуществующих страниц - моя ситуация такова, что установка OwnCloud расположена на один уровень ниже корневого (https://example.com/owncloud).

Это сработало для меня, чтобы отправить все в свой подкаталог:

# redirect from root to subdirectory
RedirectMatch ^/$ /thesubdirectory/

# redirect on 404 to subdirectory
ErrorDocument 404 /thesubdirectory/index.php