mod-rewrite - 公开内部网站 - mod_rewrite

标签 mod-rewrite iis iis-10

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

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

现在为了解决这个问题,我正在使用 mod_rewrite模块通过绑定(bind)到特定端口形成 IIS,即
mod_rewrite规则参数

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

  • 当我打开 http://myname.ddns.net:91 时,一切正常它实际上会打开内部网站http://secondname.gfd.us
    我在这里不喜欢的是,如果我需要为暴露的网站使用不同的二级域名,即 http://coolname.gfd.us ,那么我需要将另一个规则绑定(bind)到另一个端口。我想让这个更有活力。

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

    使用 mod_rewrite 可以实现吗? ?

    最佳答案

    您可能应该放弃 mod_rewrite并配置许多 Host-Headers对于这个网站,

    所以连同 gfd.us您应该使用主机头 myname.ddns.net 为相同的 IP 和文件位置添加配置

    看起来你也可以use wildcard since IIS10如果你想。

    关于mod-rewrite - 公开内部网站 - mod_rewrite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34127548/

    相关文章:

    asp.net - 服务器重启后登录信息仍然存在

    c# - 为什么 IIS 返回空响应?

    asp.net-core-webapi - HTTP 错误 500.19 - 内部服务器错误代码 0x8007000d

    regex - 测试 .htaccess 文件的更好方法

    .htaccess - htaccess 使用正则表达式和无限重定向重写规则

    .htaccess 问题与 https 重定向

    .htaccess - htaccess : Remove and disable file ending

    iis - 范围 IIS 按请求 URL 重写出站规则

    c# - SignalR 似乎正在使用 Windows 身份验证而不是使用匿名身份验证

    iis - MaxWebConfigFileSizeInKB 和 IIS 10