我有一个简单的重写规则,它使用 Helicon Isapi_Rewrite 3 RewriteProxy derictive 写入外部域。
示例:RewriteProxy 博客http://blog.com
但是,外部站点上的链接并没有像我预期的那样被代理屏蔽。他们仍然指向http://blog.com/link1而不是http://mysite/blog/link1。
谁能指出我解决这个问题的正确方向?
谢谢
我有一个简单的重写规则,它使用 Helicon Isapi_Rewrite 3 RewriteProxy derictive 写入外部域。
示例:RewriteProxy 博客http://blog.com
但是,外部站点上的链接并没有像我预期的那样被代理屏蔽。他们仍然指向http://blog.com/link1而不是http://mysite/blog/link1。
谁能指出我解决这个问题的正确方向?
谢谢
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 可能会从 blog.com 域写入 cookie。通过 MySite 域提供的页面可能无法访问这些 cookie,具体取决于用户的浏览器设置。
3) JavaScript 和 AJAX
4) SSL 证书