it-swarm-ru.tech

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

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

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

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

70
Hamish Downer

Чувствую себя немного глупо - немного больше прибегая к помощи, нашел ответ, который я получил после:

RedirectMatch ^/$ /git/

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

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

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

115
Hamish Downer

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

3
Rory

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

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

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

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

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

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