【发布时间】:2018-04-13 15:48:25
【问题描述】:
是否可以根据我的网站名称后的匹配 URL 应用 URL 重写?所以假设我在http://foo:8080 上有一条规则,它使我能够转到http://foo:8080/ 并且将重写为http://too。有没有办法说如果我访问http://foo:8080/bar,它将带我到http://too/bar,但网站foo 上有规则,下面没有任何应用程序?
这将使一个站点上的多个规则能够根据我最初导航到的位置重新路由,而不是为每个重写规则设置多个应用程序。
我希望这是有道理的,如果没有,但您认为您有答案,请告诉我,我会尽量说得更清楚。
谢谢
【问题讨论】:
-
“foo”和“too”在哪里/如何托管?你能澄清“它下面没有任何应用程序”吗?您能否将两个主机名绑定到同一个 IIS 站点,并使用重写来提供适当的内容?
-
“Foo”与“too”托管在不同的服务器上。此时的重写是反向代理重写,因此转到“Foo”将重写为“too”,然后将域之后的任何内容附加到新的 url。根目录下没有应用程序,我的意思是 iis 中没有虚拟文件夹。只是顶级网站。在根网站上设置规则会为“'/'之后的任何内容”创建规则,这意味着直接在网站名称之后将被重写。创建一个应用程序然后在其中添加规则会将重写添加到“/app/”之后的任何内容。我想在没有应用的情况下模仿它。
-
您能否在问题中包含 web.config 的重写部分?如果您对裸域进行了重写,您可以在输入中使用捕获组,然后将该值插入到生成的重写 URL 中? (如果您需要将该行为限制为特定 URL 而不是所有 url,则使用条件)
标签: iis url-rewriting