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中使用子目录文件作为默认文档(Default Document)替代重定向