Назад | Перейти на главную страницу

Перенаправление определенного URL-адреса на другой виртуальный хост в apache

У меня есть две версии очень маленьких приложений ruby-on-rails, работающих на моем веб-сервере. Один обслуживается извне (производственный), а другой обслуживается только по URL-адресу интрасети (промежуточный). Итак, у меня есть два виртуальных хоста, и они хорошо работают.

Моя цель - обслужить сгенерированную документацию для базы кода под доменом промежуточного сервера, но просто настроить другой виртуальный хост и docroot и выгрузить туда все статические файлы HTML. Я не понимаю, как это настроить в httpd.conf.

Итак, цель - иметь:

staging.foo.com/ -> rails app vhost (указывает на / var / www / rails / foo /)

и

staging.foo.com/doc/ -> vhost документации (указывает на / var / www / doc / foo /)

Извините за неуклюжесть вопроса; Я почти уверен, что это можно сделать с помощью mod_rewrite, но, прочитав документы несколько раз, я все еще не понимаю, как выполнить этот Подвиг силы.

Вы можете указать правило перезаписи, как показано в этом примере:

<VirtualHost 172.20.30.40>
   DocumentRoot /www/subdomain/sub2
   ServerName www.sub2.domain.tld
   ServerPath /sub2/
   RewriteEngine On
   RewriteRule ^(/sub2/.*) /www/subdomain$1
 </VirtualHost>

Использовать ServerPath Как ты хочешь (док в вашем примере), а затем используйте RewriteRule чтобы привязать ServerPath к новому местоположению. Не забудьте $ 1 (согласованная часть).

Не забудьте загрузить mod_rewrite в apache.