2015-12-07 61 views
4

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

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

现在通过结合到特定端口,即解决这个问题,我使用了mod_rewrite模块形式IIS

mod_rewrite规则参数

  1. 模式 - (.*)
  2. 条件 - {SERVER_PORT} = 91
  3. 重写URL:http://secondname.gfd.us/{R:1}

一切正常,当我打开http://myname.ddns.net:91它实际上将打开内部的网站http://secondname.gfd.us

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

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

使用mod_rewrite可以达到这个目的吗?

回答

0

你或许应该抛弃mod_rewrite与本网站配置许多Host-Headers

因此与gfd.us一起,你应该为同一IP与主机头文件位置添加配置myname.ddns.net

它也像你可以use wildcard since IIS10如果你想。