2014-10-06 25 views
10

Tôi đang cố viết quy tắc ghi đè URL để buộc kết nối HTTPS. Điều này sẽ luôn xảy ra trừ khi yêu cầu sử dụng localhost (ví dụ: http://localhost/mysite).IIS URL Rewrite https quy tắc bỏ qua localhost

Nguyên tắc được cấu hình như sau:

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

Tôi cũng cố gắng sử dụng^localhost và localhost^/(.*) như là một khuôn mẫu cho điều kiện URL không có sự giúp đỡ. Có ai có ý tưởng tại sao điều này không hiệu quả và giải pháp cho vấn đề này nên là gì?

+0

Phiên bản nào của IIS? Bạn có thể muốn cập nhật câu hỏi của mình với câu hỏi đó. – kkuilla

+0

Ngay bây giờ tôi đang sử dụng nó trên IIS8. Nhưng bạn đã cung cấp giải pháp. Cảm ơn rất nhiều. –

Trả lời

22

Mã của bạn sẽ trông như thế này thay vì

<rule name="Redirect to https" enabled="true" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
     <add input="{HTTPS}" pattern="off" /> 
     <add input="{HTTP_HOST}" pattern="localhost" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" /> 
</rule> 
+1

Bạn là người đàn ông! Cảm ơn rất nhiều! –

Các vấn đề liên quan