2016-07-22 97 views
0

我不会问任何其它提供的解决方案的工作对我来说,但他们没有这样做。其中部分工作部分没有,所以我想我会要求包括IIS设置重新绑定的完整解决方案。需要得到一个网站都重定向到www和https

我有一个网站(旧ASP经典)正在被移动到IIS 8(2012)。

该网站从我的hosts文件进行测试时,它的工作原理。

目前我只能把http重定向到https而不是非WWW请求到www.example.com。

所以我有两个绑定在IIS(80/433)为www.example.com,我也尝试过与另一组没有www。例如example.com,但后来我得到了错误,如系统试图处理您的请求,它不会返回,例如,在一个圆圈等周围重定向。

我不太确定这是关于这2个绑定或者它的规则变得有点混乱。所以我需要从IIS绑定设置和web.config规则的整个方法(或在IIS 8中有更好的方式强制所有80通信到端口443?)

我已经在我的网络中有一些ISAPI规则config文件如

<rule name="Order" stopProcessing="false"> 
 
    <match url="^applications/order/?$" /> 
 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
 
    <action type="Rewrite" url="plugins/order.asp" /> 
 
</rule> 
 
<rule name="Robots 1" stopProcessing="false"> 
 
    <match url="^robotstxt\.asp$" /> 
 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
 
    <action type="Rewrite" url="robottxt.asp" /> 
 
</rule> 
 
<rule name="Robots 2" stopProcessing="false"> 
 
    <match url="^robotstxt$" /> 
 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
 
    <action type="Rewrite" url="robottxt.asp" /> 
 
</rule>

所以,当我读了我看到了有关人们试图做一次或两套两个规则,但它只是从来没有管理工作敌我我。

我需要非HTTP请求来访问https 和非WWW请求去www.example.com e.g https://www.example.com

目前其部分工作,但只是因为我不是非WWW。重定向。

我有两个绑定www.example.com主机名和这个规则在顶部。

<rule name="Redirect to HTTPS" stopProcessing="true"> 
 
    <match url="(.*)" /> 
 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
 
    <add input="{HTTPS}" pattern="^OFF$" /> 
 
    </conditions> 
 
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" /> 
 
</rule>

因此,所有的规则都工作,包括HTTP到HTTPS。但是我需要非www规则才能工作。

为了让它保持我的规则的其余部分,并让它也重定向非www。到www.example.com的流量,例如https://www.example.com。做这个的最好方式是什么。

  1. 我是否需要另外一对绑定设置没有www。 e.s example.com for 80/443?
  2. 然后,我添加了什么规则,它们需要以什么顺序作为int .htacces它们在循环中从上到下处理一个我只是想知道IIS的方式,还有一个逻辑路径,可能导致它跳过引起无限循环。

对此的任何帮助将不胜感激。

感谢

+0

你确定没有任何重定向发生在网站本身的编码?可能是每个页面上都包含。 – Amos

+0

nope,页面上根本没有重定向。我对www.domain.com和domain.com都有https/http绑定。网站上没有其他事情发生。 – MonkeyMagix

+0

好的,我没有太多的绑定经验,但作为一种解决方法,您可以在每个页面上包含一个编码重定向。将include添加到每个页面的顶部或向现有的include添加一些代码(只要它包含在将html发送到浏览器之前) – Amos

回答

0

我想加入包括是什么,如果你需要得到在此之上非常迅速,我会做。使用搜索和替换程序添加包括标签到您的所有网页:

<!--#include file="redirect.asp"--> 

然后创建“redirect.asp的”用类似下面:

<% 
webDomain=LCase(Request.ServerVariables("HTTP_HOST")) 
scriptname=Request.ServerVariables("SCRIPT_NAME") 
If InStr(webDomain,"https://www.example.com")=0 Then 

    Response.Status="301 Moved Permanently" 
    Response.AddHeader "Location", "https://www.example.com" & scriptname 

End If 
%> 

您可能需要调整这一点,但无论如何它的基本编码重定向。

相关问题