Доброго дня!
У меня в школе есть сервер на Кентавре 7, к которому департамент организовал доступ по 80 порту.
Там стоит apache2 и публикует в интернет РУЖЭЛЬ.
Хочу для своих учащихся создать собственный ejudge-сервер на другой машине для сдачи домашних заданий по программированию. Из локальной сети компьютерных классов сервер доступен, а вот через интернет возникла следующая ситуация:
на Кентавре в apache я активировал модуль proxy_http и прописал следующее в /etc/httpd2/conf/sites-available/default.conf
# Proxy for ejudge
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /ejudge http://192.168.20.50/
ProxyPassReverse /ejudge http://192.168.20.50/
<Location /ejudge>
Order allow,deny
Allow from all
</Location>
В общем-то всё по документации apache. Соответственно все заработало - при вызове сервер_школы/ejudge из интернет я вижу веб-сервер своего учительского компа.
Теперь пытаюсь открыть сам ejudge (это набор cgi-скриптов ведь) - пишу в браузере сервер_школы/ejudge/cgi-bin/register.
Открывается страница с приглашением ввести логин и пароль - то есть cgi отрабатывает.
Ввожу данные и система пытается открыть адрес сервер_школы/cgi-bin/register - то есть без добавки /ejudge в середине.
Помогите составить правило для mod_rewrite, пожалуйста!
Я попытался так:
RewriteEngine On
RewriteRule %{HTTP_HOST}/cgi-bin/register %{HTTP_HOST}/ejudge/cgi-bin/register
И так:
RewriteRule ^/cgi-bin(.*) /ejudge/cgi-bin$1
Всё равно убирается ejudge из середины.