我正在使用虚拟路径应用程序构建反向代理,以便人们可以通过访问我的网站并访问其顶部目录(指示他们正在访问的站点)来访问目标站点。例如,
https://example-mysite.net/google/
将重定向到
https://google.net
问题在于,在返回的html正文中,所有链接仍指向google.net,并且不会通过我的代理,因此我需要重写正文中的所有URL
使用正则表达式很容易找到绝对URL,而且我发现我可以使用“基本”标记来设置相对URL的基本URL,例如,如果我写的话
<base href="https://example-mysite.net/google/">
正文中的相对URL
<img src="stickman.gif">
将被重定向到https://example-mysite.net/google/stickman.gif,这将由我的代理正确解析并重定向到https://google.net/stickman.gif
问题是,相对网址以
等斜杠开头<img src="/path/to/root/resource">
将访问https://example-mysite.net/path/to/root/resource,这显然不是我想要的,因为我不知道该将请求重定向到何处。
有没有解决此问题的方法,这样我就不会丢失在基本标签中指定的顶层目录?