Помогите с Apache RewriteRule

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
kharkov_max
капитан
Сообщения: 1809
Зарегистрирован: 2008-10-03 14:56:40

Помогите с Apache RewriteRule

Непрочитанное сообщение kharkov_max » 2012-05-02 21:16:00

Добрый день.

Необходимо через 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

Спасибо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
kharkov_max
капитан
Сообщения: 1809
Зарегистрирован: 2008-10-03 14:56:40

Re: Помогите с Apache RewriteRule

Непрочитанное сообщение kharkov_max » 2012-05-02 21:56:58

Так

Код: Выделить всё

RewriteRule ^(.*)/mysite(/*)$ http://192.168.0.1:8080/$2 [P]
Стала нормально отображаться стартовая страница внутреннего сайта (логин/пароль)
Но после его ввода сайт переходит на tp://my.host.ru/login.html и ошибка.

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

Re: Помогите с Apache RewriteRule

Непрочитанное сообщение dmtr » 2012-05-03 12:28:57

ProxyPass не подходит - ибо с этим сайтом не работает.
а что значит не работает?
ну и если с ним действительно никак, можт nginx?
This game has no name. It will never be the same.

Аватара пользователя
kharkov_max
капитан
Сообщения: 1809
Зарегистрирован: 2008-10-03 14:56:40

Re: Помогите с Apache RewriteRule

Непрочитанное сообщение kharkov_max » 2012-05-03 15:47:52

dmtr писал(а):
ProxyPass не подходит - ибо с этим сайтом не работает.
а что значит не работает?
ну и если с ним действительно никак, можт nginx?
На сколько я знаю ProxyPass может проксировать с порта на порт и на другой хост, но не может изменить url ссылки.
Вот поэтому и не подходит

А RewriteRule вполне могут реализовать задачу.
Вот только не знаю как правильно правило прописать

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

Re: Помогите с Apache RewriteRule

Непрочитанное сообщение dmtr » 2012-05-03 16:57:18

kharkov_max писал(а):На сколько я знаю ProxyPass может проксировать с порта на порт и на другой хост, но не может изменить url ссылки.
Вот поэтому и не подходит
разве это не то что нужно:
Suppose the local server has address http://example.com/; then

ProxyPass /mirror/foo/ http://backend.example.com/

will cause a local request for http://example.com/mirror/foo/bar to be internally converted into a proxy request to http://backend.example.com/bar.
соответственно у вас будет

Код: Выделить всё

ProxyPass /mysite/ http://192.168.0.1:8080/
This game has no name. It will never be the same.

FiL
ст. лейтенант
Сообщения: 1368
Зарегистрирован: 2010-02-05 0:21:40

Re: Помогите с Apache RewriteRule

Непрочитанное сообщение FiL » 2012-05-03 20:57:35

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 потому как тогда оно-бы вообще в ебеня уходило.

Надо править сами странички на сервере и менять ссылки на относительные. Без этого никуда.

Аватара пользователя
kharkov_max
капитан
Сообщения: 1809
Зарегистрирован: 2008-10-03 14:56:40

Re: Помогите с Apache RewriteRule

Непрочитанное сообщение kharkov_max » 2012-05-04 5:45:54

dmtr писал(а):
kharkov_max писал(а):На сколько я знаю ProxyPass может проксировать с порта на порт и на другой хост, но не может изменить url ссылки.
Вот поэтому и не подходит
разве это не то что нужно:
Suppose the local server has address http://example.com/; then

ProxyPass /mirror/foo/ http://backend.example.com/

will cause a local request for http://example.com/mirror/foo/bar to be internally converted into a proxy request to http://backend.example.com/bar.
соответственно у вас будет

Код: Выделить всё

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/

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

Re: Помогите с Apache RewriteRule

Непрочитанное сообщение dmtr » 2012-05-04 10:52:37

а так

Код: Выделить всё

ProxyPass /mysite/ http://192.168.0.1:8080/
ProxyPassReverse /mysite/ http://192.168.0.1:8080/
и покажите какие еще директвы mod_proxy в конфигурации используете?
This game has no name. It will never be the same.

Аватара пользователя
kharkov_max
капитан
Сообщения: 1809
Зарегистрирован: 2008-10-03 14:56:40

Re: Помогите с Apache RewriteRule

Непрочитанное сообщение kharkov_max » 2012-05-04 12:49:58

dmtr писал(а):а так

Код: Выделить всё

ProxyPass /mysite/ http://192.168.0.1:8080/
ProxyPassReverse /mysite/ http://192.168.0.1:8080/
и покажите какие еще директвы mod_proxy в конфигурации используете?
А при чем тут ProxyPassReverse?
Но так тоже не работает.


Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: Помогите с Apache RewriteRule

Непрочитанное сообщение QweЯty » 2012-05-28 20:48:05

присоединяюсь.
на 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
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Помогите с Apache RewriteRule

Непрочитанное сообщение zg » 2012-08-26 19:01:12

kharkov_max писал(а):Но после его ввода сайт переходит на tp://my.host.ru/login.html и ошибка.
а редирект кто генерит? пхп? тогда надо смотреть, как он его генерит :smile: