Как мне написать правило перезаписи для виртуального хоста в Apache?

У меня есть сервер Subversion, который работает нормально; Тем не менее, я купил инструмент, который требует, чтобы проект имел подкаталог "ветки" и чувствителен к регистру. Весь репозиторий уже имеет проекты с папкой "Ветви", поэтому я пытаюсь переписать файл httpd.conf. Я отключил LoadModule и включил RewriteEngine, Apache запускается, но я не получаю желаемого результата.

RewriteRule ^/Root/(.+)/branches(.*)  /Root/$1/Branches$2

Если я использую RedirectMatch, он работает в браузере, но все еще не работает в инструменте.

RedirectMatch ^/Root/(.+)/branches(.*)  /Root/$1/Branches$2 

Я понимаю, что Rewrite обычно используется для перезаписи в файл или физическое местоположение, но я видел похожий пример, пытаясь найти мой. Я открыт для других подходов, я заглянул в , но это вне меня.

1 ответ

Решение

Наконец разобрался

    RewriteRule ^/Root/(.+)/branches(.*)  http://svn/Root/$1/Branches$2 [P]

Поскольку он виртуальный, мне нужно было включить абсолютный веб-URL. Без флага [P] (прокси) он возвращал перенаправление 302, с флагом сервер обрабатывает только запрос, а клиент просто возвращает правильную страницу из одного запроса.

Другие вопросы по тегам