Страница 1 из 1
Помогите с Apache RewriteRule
Добавлено: 2012-05-02 21:16:00
kharkov_max
Добрый день.
Необходимо через Apache22 пробросить в инет внутренний сайт (реализовать обратный прокси).
ProxyPass не подходит - ибо с этим сайтом не работает.
Внутренний сайт имеет след ссылку
http://192.168.0.1:8080 - повесить на другой порт нет возможности.
Из инета это должно выглядеть как
http://my.host.ru/mysite
Т.е.
http://my.host.ru/mysite ->
http://192.168.0.1:8080/
http://my.host.ru/mysite <-
http://192.168.0.1:8080/
Делаю так
Код: Выделить всё
RewriteRule ^(.*)/mysite(/*) http://192.168.0.1:8080/$1 [P]
Отображается "корявое" окно логин/пароль внутреннего сайта, после ввода логина и пароля ссылка
http://my.host.ru/mysite превращается в
http://my.host.ru/login.html ну и соответственно ошибка т.к. такого файла нет.
Проблемы для меня 2
1. Как правильно подменить ссылку
2. Как пробросить на другой хост/порт при помощи RewriteRule
Спасибо.
Re: Помогите с Apache RewriteRule
Добавлено: 2012-05-02 21:56:58
kharkov_max
Так
Код: Выделить всё
RewriteRule ^(.*)/mysite(/*)$ http://192.168.0.1:8080/$2 [P]
Стала нормально отображаться стартовая страница внутреннего сайта (логин/пароль)
Но после его ввода сайт переходит на tp://my.host.ru/login.html и ошибка.
Re: Помогите с Apache RewriteRule
Добавлено: 2012-05-03 12:28:57
dmtr
ProxyPass не подходит - ибо с этим сайтом не работает.
а что значит не работает?
ну и если с ним действительно никак, можт nginx?
Re: Помогите с Apache RewriteRule
Добавлено: 2012-05-03 15:47:52
kharkov_max
dmtr писал(а):ProxyPass не подходит - ибо с этим сайтом не работает.
а что значит не работает?
ну и если с ним действительно никак, можт nginx?
На сколько я знаю ProxyPass может проксировать с порта на порт и на другой хост, но не может изменить url ссылки.
Вот поэтому и не подходит
А RewriteRule вполне могут реализовать задачу.
Вот только не знаю как правильно правило прописать
Re: Помогите с Apache RewriteRule
Добавлено: 2012-05-03 16:57:18
dmtr
kharkov_max писал(а):На сколько я знаю ProxyPass может проксировать с порта на порт и на другой хост, но не может изменить url ссылки.
Вот поэтому и не подходит
разве это не то что нужно:
соответственно у вас будет
Код: Выделить всё
ProxyPass /mysite/ http://192.168.0.1:8080/
Re: Помогите с Apache RewriteRule
Добавлено: 2012-05-03 20:57:35
FiL
kharkov_max писал(а):Так
Код: Выделить всё
RewriteRule ^(.*)/mysite(/*)$ http://192.168.0.1:8080/$2 [P]
Стала нормально отображаться стартовая страница внутреннего сайта (логин/пароль)
Но после его ввода сайт переходит на tp://my.host.ru/login.html и ошибка.
A это от прокси не зависит. Сервер посылает клиенту ссылку в контенте и прокся этого поменять не может.
Если там ссылка идет как /login.html, то клиент и пытается перейти на /login.html на текущем сайте.
Хорошо еще, что ссылка не идет в виде
http://192.168.0.1:8080/login.html потому как тогда оно-бы вообще в ебеня уходило.
Надо править сами странички на сервере и менять ссылки на относительные. Без этого никуда.
Re: Помогите с Apache RewriteRule
Добавлено: 2012-05-04 5:45:54
kharkov_max
dmtr писал(а):kharkov_max писал(а):На сколько я знаю ProxyPass может проксировать с порта на порт и на другой хост, но не может изменить url ссылки.
Вот поэтому и не подходит
разве это не то что нужно:
соответственно у вас будет
Код: Выделить всё
ProxyPass /mysite/ http://192.168.0.1:8080/
Так пробовал делать. Получается так.
Отображается первая страница внутреннего сайта, логин/пароль, и после ввода идет переход на _htp://my.host.ru/login.html и ошибка.
FiL писал(а):kharkov_max писал(а):Так
Код: Выделить всё
RewriteRule ^(.*)/mysite(/*)$ http://192.168.0.1:8080/$2 [P]
Стала нормально отображаться стартовая страница внутреннего сайта (логин/пароль)
Но после его ввода сайт переходит на tp://my.host.ru/login.html и ошибка.
A это от прокси не зависит. Сервер посылает клиенту ссылку в контенте и прокся этого поменять не может.
Если там ссылка идет как /login.html, то клиент и пытается перейти на /login.html на текущем сайте.
Хорошо еще, что ссылка не идет в виде
http://192.168.0.1:8080/login.html потому как тогда оно-бы вообще в ебеня уходило.
Надо править сами странички на сервере и менять ссылки на относительные. Без этого никуда.
Что Вы имеете ввиду под сервером ?
Внутренний сайт, или apache который в инет смотрит ? (Внутренний сайт это виндузятная софтина которую изменить нельзя ...)
На сколько я понимаю теорию мне нужно.
1. Преобразовывать ссылку, от обратного прокси apache к внутреннем серверу.
2. Проксировать запрос на другой порт внутреннего сетвера. RewriteRule .... [P]
Это правило:
Код: Выделить всё
RewriteRule ^(.*)/mysite(/*)$ http://192.168.0.1:8080/$2 [P]
по сути повторяет это
Код: Выделить всё
ProxyPass /mysite/ http://192.168.0.1:8080/
Re: Помогите с Apache RewriteRule
Добавлено: 2012-05-04 10:52:37
dmtr
а так
Код: Выделить всё
ProxyPass /mysite/ http://192.168.0.1:8080/
ProxyPassReverse /mysite/ http://192.168.0.1:8080/
и покажите какие еще директвы mod_proxy в конфигурации используете?
Re: Помогите с Apache RewriteRule
Добавлено: 2012-05-04 12:49:58
kharkov_max
dmtr писал(а):а так
Код: Выделить всё
ProxyPass /mysite/ http://192.168.0.1:8080/
ProxyPassReverse /mysite/ http://192.168.0.1:8080/
и покажите какие еще директвы mod_proxy в конфигурации используете?
А при чем тут ProxyPassReverse?
Но так тоже не работает.
Re: Помогите с Apache RewriteRule
Добавлено: 2012-05-10 11:05:37
kharkov_max
Upp
Re: Помогите с Apache RewriteRule
Добавлено: 2012-05-28 20:48:05
QweЯty
присоединяюсь.
на 192,168,1,56 стоит сервер апач.
а на 192,168,1,207 192,168,1,17 находятся cms программ.
хотелось бы пробросить их на 192,168,1,56 как
www.site/site_ip1 www.site/site_ip2
Re: Помогите с Apache RewriteRule
Добавлено: 2012-08-26 19:01:12
zg
kharkov_max писал(а):Но после его ввода сайт переходит на tp://my.host.ru/login.html и ошибка.
а редирект кто генерит? пхп? тогда надо смотреть, как он его генерит