重定向IIS';s根到应用程序根
我在IIS上安装了几个应用程序:重定向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,服务器将请求
/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