Я использую Apache2 в Debian etch с несколькими виртуальными хостами.
Я хочу перенаправить так, чтобы http://git.example.com
идет к http://git.example.com/git/
Должно быть очень просто, но Google не совсем урезает это. Я пробовал вещи Redirect и Rewrite, и они, кажется, не совсем то, что я хочу ...
Чувствую себя немного глупо - немного больше прибегая к помощи, нашел ответ, который я получил после:
RedirectMatch ^/$ /git/
В основном перенаправление рут и только рут.
Этот код может сделать в .htaccess
file (есть тег для этого, поэтому я предполагаю, что это оригинальный вариант использования). Но если вы можете редактировать конфигурацию главного сервера Apache, поместите ее в раздел для вашего сайта, вероятно, внутри <VirtualHost>
раздел.
документы для RedirectMatch говорят, что context может быть "конфигурацией сервера, виртуальным хостом, каталогом, .htaccess".
У вас есть правильный ответ там с перенаправлением. Вы должны быть осторожны при перенаправлении всего в другое место, так как вы можете получить рекурсивные перенаправления там. Это происходит, если вы хотите открыть страницу обслуживания.
Вы можете использовать директиву Redirect.
<Directory />
Redirect permanent / http://git.example.com/git/
...
</Directory>
Принятый ответ решил мою проблему, но я также обнаружил, что мне пришлось добавить перенаправление 404 для несуществующих страниц - моя ситуация такова, что установка OwnCloud расположена на один уровень ниже root ( пример https: //. ком/OwnCloud ).
Это сработало для меня, чтобы отправить все в мой подкаталог:
# redirect from root to subdirectory
RedirectMatch ^/$ /thesubdirectory/
# redirect on 404 to subdirectory
ErrorDocument 404 /thesubdirectory/index.php