«Маскировка» внешних URL-ссылок с помощью производного RewriteProxy

У меня есть простое правило перезаписи, которое записывает во внешний домен с помощью производной Helicon Isapi_Rewrite 3 RewriteProxy.

Пример: блог RewriteProxy http://blog.com

Однако ссылки на внешнем сайте не маскируются прокси, как я ожидал. Они по-прежнему указывают на http://blog.com/link1, а не на http://mysite/blog/link1.

Может ли кто-нибудь указать мне в правильном направлении решения этой проблемы?

Спасибо


person Chris Parkinson    schedule 17.04.2009    source источник


Ответы (1)


Это обсуждение на форумах Helicon Tech посвящено той же проблеме. http://www.helicontech.com/forum/8460-rewrite_proxy_to_2d_machine.html

В первом примере представлен код для ISAPI Rewrite 2, но поток включает синтаксис ISAPI Rewrite 3 дальше по странице. Вот адаптация их кода версии 3 для вашего примера.

RewriteEngine on
RewriteBase /
RewriteRule ^blog$ http://mysite/blog/ [NC,R=301]
RewriteProxy ^/blog(/.*)?$ http\://blog.com$1 [NC,U]

(Это не проверено, потому что я использую ISAPI Rewrite 2.) Обратите внимание, что я столкнулся с некоторыми трудностями при попытке обратного прокси другого сайта в моем «основном» домене. Вы также можете обнаружить эти проблемы.

1) Не относительные ссылки

Если приложение не было закодировано с нуля для обратного проксирования, я обнаружил, что оно может сломаться. Простая HTML-страница, использующая все относительные ссылки, будет работать. Однако при обслуживании HTML через обратный прокси-сервер, содержащий этот код, будет отображаться http://mysite/page_from_the_root.html. ISAPI Rewrite не знает, как перехватить этот запрос, но будет проксировать содержимое, если браузер пользователя нажмет http://mysite/blog/page_from_the_root.html

2) Файлы cookie

Blog.com может создавать файлы cookie из домена blog.com. Страница, обслуживаемая через домен MySite, может не иметь доступа к этим файлам cookie в зависимости от настроек браузера пользователя.

3) JavaScript и AJAX

4) SSL-сертификаты

person jtherkel    schedule 02.06.2011