修复301条重定向规则不被视为没有找到IIS8.5 ASP.NET

问题描述:

试图访问域像https://www.example.com当我得到404我得到404修复301条重定向规则不被视为没有找到IIS8.5 ASP.NET

我有以下重写规则:

<rules> 
     <rule name="Redirect-HTTP-HTTPS-IIS"> 
    <match url="(.*)" /> 
    <conditions> 
    <add input="{HTTPS}" pattern="^OFF$" ignoreCase="true" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> 
</rule> 

    <rule name="CanonicalHostNameRule1"> 
     <match url="(.*)"/> 
     <conditions> 
     <add input="{HTTP_HOST}" pattern="^example\.com$" negate="true"/> 
     </conditions> 
     <action type="Redirect" url="https://example.com/{R:1}"/> 
    </rule> 
    </rules> 

访问https://www.example.com将最终到达https://example.com。我的问题是,有些服务像谷歌网站管理员工具验证无法验证网站,因为页面没有找到,尽管最后它重定向到https://example.com

http://example.com确实显示301重定向到https://example.com。只有当我添加www时,它不会显示301重定向,尽管服务器最终将其重定向到正确的位置。

如何更改我需要使访问https://www.example.com的写入规则将被识别为301重定向到https://example.com。我认为,由于多个规则的页面发送没有找到。

也许有一种方法可以将它编写为包含两个规则的重定向301的单个规则,因此它将使用HTTP或/和WWW将URL重定向到具有HTTPS和非WWW URL的URL。

更新:我检查铬网络和在状态列中,它说(取消),用于类型文档,并将其上显示为红色。这可能是由于IIS返回404,因为具有WWW的域的HTTPS未通过认证。有没有办法解决?

使用IIS8.5/ASP.NET 4.5

谢谢。

+0

http://*.com/questions/33381095/how-to-dynamically-add-rules-to-iis-rewrite-map似乎与 – Anil

+0

@AnilKumar我不这么认为,因为在客户端在Chrome开发工具,在'状态'栏它说(取消)类型'文件) –

+0

我认为这是与网站绑定 –

我需要为网站的WWW版本创建一个SSL证书。一旦我做到了,重定向就按预期工作。

+1

有关知识,你已经解决你的自我 – Anil

+0

@AnilKumar谢谢,并不是微不足道的,但最终发现了它。 –