暴露内部网站 - mod_rewrite

时间:2015-12-07 06:16:57

标签: mod-rewrite iis iis-10

我在本地托管了一个网站(http://gfd.us),我想将其暴露给互联网。 我有一个二级域名(来自NoIP服务)公开可用:http://myname.ddns.net,它指向我的IIS服务器上的Default Web Site

这里的问题是内部网站也需要二级域名,即http://secondname.gfd.us

现在解决这个问题我通过绑定到特定端口来使用IIS的mod_rewrite模块,即

mod_rewrite规则参数

  1. 模式 - (.*)
  2. 条件 - {SERVER_PORT} = 91
  3. 重写网址:http://secondname.gfd.us/{R:1}
  4. 一切按预期工作,当我打开http://myname.ddns.net:91时,它会实际打开内部网站http://secondname.gfd.us

    我不喜欢的是,如果我需要为暴露的网站使用不同的二级域名,即http://coolname.gfd.us,那么我需要将另一个规则绑定到另一个端口。我想让这更有活力。

    我尝试将模式更改为此(.*)\gfd_(.*)并将重写网址更改为http://{R:2}.gfd.us/{R:1},但它无法按预期工作。当我打开http://myname.ddns.net:91/gfd_coolname时,网站本身会打开所需的二级域名,但所有CSS,JS和图像文件都指向错误的URL,因为它们没有被正确重写。

    是否可以使用mod_rewrite来实现?

1 个答案:

答案 0 :(得分:0)

您可能应该放弃mod_rewrite并为此网站配置多个Host-Headers

因此,与gfd.us一起,您应该使用主机标头myname.ddns.net添加相同IP和文件位置的配置

如果你愿意,你也可以use wildcard since IIS10