0

我正在尝试在 MVC 中使用 url rewrite 2.0 为 IIS 编写 SSL 重定向规则。这个想法是,当访问者尝试访问敏感区域(fe 登录和注册表单)时,应该将访问者重定向到 https,如果他转到任何其他页面,则会发生相反的情况:https 请求被重定向到 http . 到目前为止我做了什么:

<rule name="Use SSL for private pages" patternSyntax="ECMAScript" stopProcessing="true">
  <match url="[.*/]*(user|signup)" ignoreCase="true" />
  <conditions logicalGrouping="MatchAny">
    <add input="{HTTPS}" pattern="OFF" />
  </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" 
          appendQueryString="true" redirectType="Permanent" />
</rule>

<rule name="Don't use SSL for non-private pages" patternSyntax="ECMAScript" stopProcessing="true">
  <match url="[.*/]*(user|signup)" ignoreCase="true" negate="true" />
  <conditions logicalGrouping="MatchAny">
    <add input="{HTTPS}" pattern="ON" />
  </conditions>
  <action type="Redirect" url="http://{HTTP_HOST}{REQUEST_URI}"
          appendQueryString="true" redirectType="Permanent" />
</rule>

问题是:当我加载安全区域时,浏览器拒绝加载不安全的内容(javascript 和图像)。在添加规则“不要将 SSL 用于非私有页面”之前,我没有遇到这个问题。

任何人都可以帮我解决这个问题或提出其他方法吗?但是,它应该使用 web.config 和 url rewrite

4

1 回答 1

0

经过一番撞墙后,我发现添加条件有所帮助。更准确地说,仅当请求的文件扩展名不是 css 或 js 时,我才允许执行第二条规则

于 2013-09-20T10:36:18.233 回答