IIS 默认重定向

Posted

技术标签:

【中文标题】IIS 默认重定向【英文标题】:IIS Default Redirect 【发布时间】:2011-10-28 21:00:43 【问题描述】:

在IIS7中,如果网站级别的默认重定向是相对路径,那么如何进行默认重定向是在https而不是http。

当前如果主机是:abc.com 并且登录页面是 abc.com/myapp/login.aspx,我将默认重定向(IIS 管理器 -> HTTPRedirect)设置为 /myapp/login.aspx。因此,如果用户在浏览器地址栏中输入 abc.com,他会被重定向到 http://abc.com/myapp/login.aspx。我想确保用户被重定向到 http*s*://abc.com/myapp/login.aspx。

是否需要根级别的 web.config?

注意,这不能在asp.net代码中完成,因为asp.net代码不参与这个请求的处理

编辑: 一种方法是使用“默认”网络应用程序,即在根(网站)级别部署网络应用程序,然后使用 asp.net 提供的标准重定向模块。对利弊有什么看法吗?

【问题讨论】:

【参考方案1】:

最后我们想出了 3 个不同的选项:

    在“网站”级别使用 index.htm 并放置一个 javascript 来设置 window.location.href 到 https 网址。 使用 IIS URL 重写 module 使用自定义 asp.net 模块重定向到 https URL。此模块的 dll 将在 GAC 中注册,并在“网站”级别配置该模块。在 GAC 中注册是必要的,因为该模块将为“网站”的子应用程序调用

选项 3 的选择基于:

    易于部署。在所有前端服务器上安装重写模块比在 GAC 中安装 dll 更复杂 支持不会解析 javascript 的非浏览器用户代理。这消除了选项 1。

【讨论】:

以上是关于IIS 默认重定向的主要内容,如果未能解决你的问题,请参考以下文章

IIS 使用 HTTP重定向 修改 默认主页

Exchange 2016配置IIS重定向

IIS中使用子目录文件作为默认文档(Default Document)替代重定向

IIS6 301重定向和IIS7 301重定向

Win2008 r2 iis7/iis7.5系统下HTTP重定向(301重定向)图文方法

IIS HTTP重定向配置参数设置