2015-05-29 27 views
5

Burada bir dizi yayın okuduğum yanı sıra 'net (IIS bloglar, vb.). adresine tüm bağlantıları domain.com'dan www.domain.com'a yönlendirmek ve aynı zamanda isteği HTTP'den HTTPS'a zorlamak için zorluyorum.HTTP - HTTPS Yönlendirmesi - IIS 8.5 düzgün çalışmıyor

Bu kural kümesini kullanıyorum ve yeniden yazıyor ancak gerçekleşen tek şey, iyi yönlendirme yapması ancak yeniden SSL'ye yönlendirmemesi.

<!-- Redirect to HTTPS --> 
<rewrite> 
    <rules> 
     <rule name="Redirect to www" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions trackAllCaptures="false"> 
       <add input="{HTTP_HOST}" matchType="Pattern" pattern="^mydomain.com$" ignoreCase="true" negate="false" /> 
      </conditions> 
      <action type="Redirect" url="{MapProtocol:{HTTPS}}://www.mydomain.com/{R:1}" /> 
     </rule> 
    </rules> 
    <rewriteMaps> 
     <rewriteMap name="MapProtocol" defaultValue="http"> 
      <add key="on" value="https" /> 
      <add key="off" value="http" /> 
     </rewriteMap> 
    </rewriteMaps> 
</rewrite> 

Neyi yanlış yapıyorum?

Ana günlüğü referansı: http://weblogs.asp.net/owscott/url-rewrite-protocol-http-https-in-the-action ve bu SO sonrası - web.config redirect non-www to www

+0

ayrı iis. Yeni bir tane her defasında yeni bir gizli pencereyi kapatmanız ve başlatmanız gerekecektir. –

cevap

6

Edit: Ben bu blog yazısı bulundu: http://www.meltedbutter.net/wp/?p=231 ve bir deneyin ve işte verdi! Bir çekicilik gibi çalıştı. Bunun neden yukarıda belirtilen kurallar üzerinde çalıştığından emin değilim, fakat benim durumumda aşağıdakiler çalışıyor ve tüm www olmayan trafiği başarıyla alıyor ve hem www hem de https adreslerine yönlendiriyorsunuz.

<!-- Redirect to HTTPS --> 
     <rewrite> 
      <rules> 
       <rule name="http to https" stopProcessing="true"> 
        <match url="(.*)" /> 
        <conditions> 
         <add input="{HTTPS}" pattern="^OFF$" /> 
        </conditions> 
        <action type="Redirect" url="https://www.domain.com/{R:1}" redirectType="SeeOther" /> 
       </rule> 
      </rules> 
     </rewrite> 
+1

'redirectType =" seeOther "' çözümdür. Onun benim günümü mahvetti. –

1

Biz URL yeniden modülü kullanarak https http yönlendirme yaparken aynı sorunu karşı karşıya Ama IIS içinde gerektirir SSL modülü kapatıldıktan sonra hile yaptı.

  1. git web sitesinin SSL Ayarları
  2. işaretini kaldırın SSL onay kutusunu gerektirir.
  3. ayarları uygula ve Yeniden önbelleğe edilecektir Chrome veya 301 yönlendirmeleri bir Gizli penceresinde deneyler yapmak unutma, config hatalarından