使一个网站看起来好像它位于不同网站的文件夹中

时间:2018-03-15 21:07:34

标签: iis

这涉及在Intranet服务器上使用IIS版本10。

为了这个例子,我创建了三个" hello world" IIS网站(Site0,Site1和Site2)。这三个都托管在同一个Intranet服务器(RMG-SAND)上。将网站制作和测试作为单独的应用程序非常容易。站点0,1和2各自具有不同的MVC应用程序。 它们不是同一个应用程序。

  • 网站0为http://rmg-sand/
  • 网站1为http://rmg-sand:81/
  • 网站2为http://rmg-sand:82/

我被要求提供三个站点实际上属于同一站点的错觉。所以即使在IIS上这些仍然是具有不同物理路径的不同站点,我被要求制作它所以URL就像这样。

  • 网站0为http://Site0/
  • 网站1为http://Site0/Site1/
  • 网站2为http://Site0/Site2/

与此同时,我仍然需要能够在代码中使用真正的URL,因此这两者都可以按预期工作并指向正确的资源。

  • http://Site0/http://rmg-sand/
  • 到达网站0
  • 网站1由http://Site0/Site1/http://rmg-sand:81/
  • 到达
  • 网站2由http://Site0/Site2/http://rmg-sand:82/
  • 到达

然而,就使用浏览器的人而言,他们只会在同一网站上看到并使用"所有内容"风格和任何使用"端口"风格将正常工作,但立即重写到同一网站上的所有内容"风格。

我将如何实现这种错觉?

我搜索过文章和示例,但到目前为止我还没有看到任何符合我情景的内容,很可能是因为我没有使用我真正需要查看的文章中使用的术语。

如果可能,我会使用哪种技术?

1 个答案:

答案 0 :(得分:0)

我想我已经解决了。这就是我做这个"你好世界"场景工作。我还没设法打破它。无论是解决问题的最佳方式,我都不知道。最后,两个操作的顺序给了我所需的结果:(1)添加"应用程序"到Site0和(2)使用" URL重定向"在Site1和Site2中重定向到正确的Site0"应用程序"。

首先,创建应用程序到Site0以表示"文件夹"对于您需要添加的每个网站。 (我的错误是将其作为"虚拟文件夹")。

  1. 右键单击" Site0"并选择Add Application:别名为Site1,物理路径与" Site1"使用的路径相同。
  2. 右键单击" Site0"并选择Add Application:别名为Site2,物理路径与" Site2"使用的路径相同。
  3. 在Site1和Site2中

    接下来,您需要使用"网址重写" https://www.iis.net/downloads/microsoft/url-rewrite在每个网站中添加重定向规则。我使用了IIS管理器GUI。

    对于Site1:

    1. 点击"网址重写"。
    2. 添加新规则:Inbound Rules > Blank Rule
    3. 姓名:"将rmg-sand:81重定向到rmg-sand / Site1"
    4. 模式:.*
    5. 条件:{HTTP_HOST}匹配模式^rmg-sand:81$
    6. 重定向至:http://rmg-sand/Site1/{R:0}
    7. 重定向类型:Permanent
    8. 对于Site2:

      1. 点击"网址重写"。
      2. 添加新规则:Inbound Rules > Blank Rule
      3. 姓名:"将rmg-sand:82重定向到rmg-sand / Site2"
      4. 模式:.*
      5. 条件:{HTTP_HOST}匹配模式^rmg-sand:82$
      6. 重定向至:http://rmg-sand/Site1/{R:0}
      7. 重定向类型:Permanent
      8. 我测试了每个网站中的点击链接(例如http://rmg-sand/Site2/Home/Contacthttp://rmg-sand:82/Home/Contact),它似乎正常运行。两个链接指向同一页面,但用户在一个站点中看到"全部"链接的版本。

相关问题