Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IIS web.config重定向//开发环境中的www和HTTPS_C#_Asp.net Mvc_Ssl_Iis - Fatal编程技术网

C# IIS web.config重定向//开发环境中的www和HTTPS

C# IIS web.config重定向//开发环境中的www和HTTPS,c#,asp.net-mvc,ssl,iis,C#,Asp.net Mvc,Ssl,Iis,我有一个.NET MVC 5网站,目前我正在使用生产环境中的web配置强制使用https并将www更改为非www(具有有效证书)。这个很好用。我还有两个开发环境。这些环境设置了自签名证书,我想强制使用https,并在这些环境中将www更改为非www <rewrite> <rules> <rule name="Redirect any HTTP request to HTTPS with no www" patternSyntax="ECMAScript"

我有一个.NET MVC 5网站,目前我正在使用生产环境中的web配置强制使用https并将www更改为非www(具有有效证书)。这个很好用。我还有两个开发环境。这些环境设置了自签名证书,我想强制使用https,并在这些环境中将www更改为非www

<rewrite>
  <rules>
    <rule name="Redirect any HTTP request to HTTPS with no www" patternSyntax="ECMAScript" stopProcessing="true">
      <match url=".*"></match>
      <conditions >
        <add input="{HTTP_HOST}" pattern="^(.*)?website.com$"></add>
        <add input="{HTTPS}" pattern="off"></add>
      </conditions>
      <action type="Redirect" url="https://website.com/{R:0}" redirectType="Permanent" appendQueryString="true"></action>
    </rule>
    <rule name="Redirect https www to HTTPS with no www" patternSyntax="ECMAScript" stopProcessing="true">
      <match url=".*"></match>
      <conditions >
        <add input="{HTTP_HOST}" pattern="^www.website.com$"></add>
        <add input="{HTTPS}" pattern="on"></add>
      </conditions>
      <action type="Redirect" url="https://website.com/{R:0}" redirectType="Permanent" appendQueryString="true"></action>
    </rule>
  </rules>
</rewrite>

如果我有这个,我可以检查是否有人试图使用https或http


这没什么大不了的,但我已经花了太多的时间在上面了,哈哈!任何想法都很感谢!

{CACHE\u URL}
变量包含完整的URL。你可以用该变量来构建条件,而不是
{HTTPS}
。它应该是这样的:

相反:

<add input="{HTTPS}" pattern="off"></add>

使用:


而是:

<add input="{HTTPS}" pattern="on"></add>

使用:


谢谢!这太完美了……我发誓我试过了,但可能是缓存问题。重定向很烦人。
<add input="{HTTPS}" pattern="on"></add>
<add input="{CACHE_URL}" pattern="^https://"  />