重定向IIS';s根到应用程序根

重定向IIS';s根到应用程序根,iis,iis-8.5,Iis,Iis 8.5,我在IIS上安装了几个应用程序: /abc /bcd 现在,我想将访问/的用户重定向到/abc网站。由于根目录不是任何应用程序的一部分,我不能使用IIS重写模块,它使用web.config中定义的重定向 因此,我在IIS中安装了HTTP重定向,并启用了以下功能: 如果用户准确输入http://example.com或http://example.com/,服务器重定向到http://example.com/abc/ 但是,如果用户输入http://example.com/abc,服务器将请求

我在IIS上安装了几个应用程序:

/abc
/bcd
现在,我想将访问
/
的用户重定向到
/abc
网站。由于根目录不是任何应用程序的一部分,我不能使用IIS重写模块,它使用
web.config
中定义的重定向

因此,我在IIS中安装了
HTTP重定向
,并启用了以下功能:

如果用户准确输入
http://example.com
http://example.com/
,服务器重定向到
http://example.com/abc/

但是,如果用户输入
http://example.com/abc
,服务器将请求视为根目录中的请求,因此它也应用重定向,从而导致
http://example.com/abc/abc

我还尝试选中第一个复选框(将所有请求重定向到确切的目的地),但这会导致
http://example.com/abc
http://example.com/abc


我希望那些进入
example.com/abc
的用户留在那里,并将进入
example.com
的用户重定向到
/abc
应用程序。我该怎么做?

要修复重定向循环,您可以添加一个指向目标的尾部锚链接,例如:
/abc/#
。这可以防止IIS从
http://example.com/abc
http://example.com/abc

示例重定向 URL重写模块 或者,您仍然可以使用URL重写模块,即使它用于根站点而不是应用程序。
web.config
文件应该存在于web根文件夹中(通常
%SystemDrive%\inetpub\wwwroot
)。您还可以使用IIS管理器中的URL重写UI添加入站规则:

这将重定向
http://example.com/
http://example.com/abc/

如果用户输入
http://example.com/xyz
(该文件不存在)它们将不会被重定向到
/abc
,并将收到
404
,这与上面的HTTP重定向模块不同

Request URL:https://example.com/abc
Request Method:GET
Status Code:302 Redirect

Response Headers
Location:https://example.com/abc/#
Server:Microsoft-IIS/8.0

Request URL:https://example.com/abc/
Request Method:GET
Status Code:200 OK