ASP.NET - 如何通过 Web.config 从 HTTP 重定向到 HTTPS 和特定来源 [CORS 策略问题]

标签 asp.net redirect https cors

我确实通过以下配置将用户从 Http 重定向到 Https

<rewrite>
  <rules>
    <rule name="HTTP_TO_HTTPS" enabled="true" stopProcessing="true">
      <match url="(.*)"/>
      <conditions logicalGrouping="MatchAny">
        <add input="{HTTPS}" pattern="^OFF$"/>
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false"/>
    </rule>
  </rules>
</rewrite>       

它按预期工作。 但是这里有一个问题,它只重定向到Https而不是异常(exception)源。我的意思是

http://www.example.comhttps://www.example.com

http://example.comhttps://example.com

上述情况导致,用户具有不同的来源,导致跨域资源共享(CORS)策略问题。

我想将所有用户重定向到 https://example.com 以避免来源冲突。

最佳答案

您也可以使用重写模块来删除 WWW 部分

<rule name="Remove www" stopProcessing="true">
  <match url="(.*)" ignoreCase="true" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^www" />
  </conditions>
  <action type="Redirect" url="http://example.com/{R:0}" redirectType="Permanent" />
</rule>

关于ASP.NET - 如何通过 Web.config 从 HTTP 重定向到 HTTPS 和特定来源 [CORS 策略问题],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59530388/

相关文章:

apache - 使 RewriteRule 可移植/相对于 .htaccess 文件的目录

c - SSL_read() 返回 0,SSL_get_error 返回 6。为什么在 SSL_read() 期间连接关闭?

asp.net - 集合已修改;枚举操作可能无法执行。但为什么?

asp.net - 在 ASP.NET 中使用 .NET 4.0 任务

带有 Subversion 的 ASP.NET 项目(VisualSVN 客户端) - 我应该忽略哪些文件?

ASP.NET MVC - 压缩 + 缓存

bash - 将进程重定向到文件并将其时间重定向到文件

java - 如何在用户浏览器中更改 url 而无需在 servlet 中进行客户端重定向

ssl - URL 如何转换为 TCP/IP 请求?

apache - 使用 SSL 配置 Web 服务器是否会破坏常规 HTTP