我正在帮助一个目前托管在IIS软件包上的网站的慈善机构,并且想要一个需要在Linux / Apache环境中托管的新网站。
由于在现有主机上设置电子邮件的方式,切换主机将是一个非常痛苦的选择。 IIS软件包和Linux软件包都在同一个网络托管公司(1& 1),他们的“框架重定向”选项不能正常工作,他们相当规范的DNS设置不允许创建指向第二个托管包。
因此,解决方案似乎是使用web.config重写规则从myoriginalsite.co.uk获取流量到mynewsite.co.uk,将标题留在显示原始URL的浏览器栏中。
我尝试过的代码如下: -
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Proxy" >
<match url="(.*)" />
<conditions>
<add input="{CACHE_URL}" pattern="^(https?)://" />
</conditions>
<action type="Rewrite" url="{C:1}://mynewsite.co.uk/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
这实际上与1&amp; 1帧重定向 - 所有流向myoriginalsite.co.uk的流量最终都在mynewsite.co.uk上,但没有添加任何路径/文件信息,即: -
myoriginalsite.co.uk/path/file.html
重写为: -
mynewsite.co.uk而不是mynewsite.co.uk/path/file.html
似乎{R:1}在匹配条件下没有正确出现,也许我需要一些不同的东西,例如url="^/(.*)"
,但我看过的所有反向代理配置帖子似乎都使用url="(.*)"
所以我相信我不太明白这是如何运作的。
我错过了什么?