我在本地托管了一个网站(http://gfd.us
),我想将其暴露给互联网。
我有一个二级域名(来自NoIP
服务)公开可用:http://myname.ddns.net
,它指向我的IIS服务器上的Default Web Site
。
这里的问题是内部网站也需要二级域名,即http://secondname.gfd.us
。
现在解决这个问题我通过绑定到特定端口来使用IIS的mod_rewrite
模块,即
mod_rewrite
规则参数
(.*)
{SERVER_PORT} = 91
http://secondname.gfd.us/{R:1}
一切按预期工作,当我打开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
来实现?
答案 0 :(得分:0)
您可能应该放弃mod_rewrite
并为此网站配置多个Host-Headers
因此,与gfd.us
一起,您应该使用主机标头myname.ddns.net
添加相同IP和文件位置的配置
如果你愿意,你也可以use wildcard since IIS10。