«Маскировка» внешних ссылок с использованием RewriteProxy - PullRequest
3 голосов
/ 17 апреля 2009

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

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

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

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

Спасибо

1 Ответ

3 голосов
/ 03 июня 2011

Эта дискуссия на форумах 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) Печенье

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

3) JavaScript и AJAX

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

...