2015-03-18 6 views
4

мне нужно перенаправить все не-WWW или без HTTPS трафика https://www с использованием правила в web.configweb.config перенаправление не-WWW ИЛИ не-HTTPS к https: // WWW, используя правила

http://domain.com --> https://www.domain.com 
http://www.domain.com --> https://www.domain.com 
https://domain.com --> https://www.domain.com 

Я изменил правила с Web.config. Redirect all traffic to www.my... Using rules element., но не смог перенаправить http://www.domain.com на https://www.domain.com.

<rewrite> 
     <rules> 
      <clear /> 
      <rule name="Redirect to www subdomain"> 
       <match url=".*" /> 
       <conditions logicalGrouping="MatchAll"> 
        <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" negate="true" /> 
        <add input="{SERVER_PROTOCOL}" pattern="^(.*)(/.*)?$"/> 
       </conditions> 
       <action type="Redirect" url="https://www.{HTTP_HOST}/{R:0}" redirectType="Permanent"/> 
      </rule> 
     </rules> 
    </rewrite> 

ответ

2

Я нашел ответ, я думаю, что это поможет другим, если я отправлю его здесь.

<rewrite> 
     <rules> 
      <clear /> 
      <rule name="Redirect non-www OR non-https to https://www"> 
       <match url=".*" /> 
       <conditions logicalGrouping="MatchAny"> 
        <add input="{HTTP_HOST}" pattern="^domain.com$" /> 
        <add input="{HTTPS}" pattern="off" /> 
       </conditions> 
       <action type="Redirect" url="https://www.domain.com/{R:0}" redirectType="Permanent"/> 
      </rule> 
     </rules> 
    </rewrite> 
+1

'https://domain.com -> https: // www.domain.com' не работает с вашим примером. – kaiyaq

2

Это будет перенаправлять все не WWW или не являющуюся HTTPS для https://www

<rewrite> 
    <rules> 
    <rule name="non-www-https to www https" enabled="true" stopProcessing="true"> 
     <match url=".*" /> 
     <conditions> 
     <add input="{HTTP_HOST}" pattern="^[^\.]+\.[^\.]+$" /> 
     <add input="{HTTPS}" pattern="on" /> 
     <add input="{HTTP_HOST}" pattern="localhost" negate="true" /> 
     </conditions> 
     <action type="Redirect" url="https://www.{HTTP_HOST}/{R:0}" /> 
    </rule> 

    </rules> 

</rewrite> 

Я добавил эту строку, чтобы игнорировать его на экспрессе IIS (локальный хост):

<add input="{HTTP_HOST}" pattern="localhost" negate="true" /> 

Другое преимущество из этого следует, что вам не нужно вводить свой домен в это правило.

Вы можете прочитать здесь: http://weblogs.asp.net/owscott/redirecting-non-www-to-domain-equivalent

Смежные вопросы