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


66

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

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

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


Есть много способов, которыми вы могли бы подойти к этому, но что именно вы пытаетесь достичь?
WerkkreW

Ответы:


111

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

RedirectMatch ^/$ /git/

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

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

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


2
хорошо, так где же разместить эту строку кода?
user230910

Я должен был поставить полный URI ( https://example.com/git/), чтобы это работало. Странный.
Мат M

3

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


4
На самом деле. Redirect / /git/приводит к рекурсивным фейерверкам.
Давор Йосипович

3

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

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

0

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

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

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

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

2
ErrorDocument должен возвращать страницу с ошибкой, а не полезный документ. Это важно для сканеров.
Иона Бентон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.