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


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

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

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


56
2018-05-19 17:20


Источник


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


Ответы:


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

RedirectMatch ^/$ /git/

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

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

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


102
2018-05-19 17:23



хорошо, так где же поставить эту строку кода? - user230910
Мне пришлось поставить полный URI (https://example.com/git/), чтобы это работало. Странный. - Mat M


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


3
2018-06-11 15:59



В самом деле. Redirect / /git/ приводит к рекурсивному фейерверку. - Davor Josipovic


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

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

3
2017-09-25 18:57





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

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

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

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

0
2017-09-11 21:29



ErrorDocument должен возвращать страницу с ошибкой, а не полезный документ. Это важно для сканеров. - Jonah Benton