2011-08-02 15 views
13

Bất cứ khi nào ai đó yêu cầu qua giao thức HTTP, tôi viết lại url để tạo HTTPS. Đây là mã trong web.config:Lỗi quy tắc ghi đè: Lỗi HTTP 500.50 - Lỗi Mô-đun Rewrite URL. Không thể mở rộng cụm từ "https://abc.com/{R:1}"

<rule name="Imported Rule 1-1" enabled="true" stopProcessing="true"> 
    <match url="^(?!https://).*" ignoreCase="false" /> 
    <conditions logicalGrouping="MatchAll"> 
     <add input="{SERVER_PORT}" pattern="80" ignoreCase="false" /> 
    </conditions> 
    <action type="Rewrite" url="https://abc.com/{R:1}" /> 
</rule> 

Tuy nhiên khi tôi duyệt trên http: // tôi nhận được IIS lỗi

HTTP Error 500.50 - URL Rewrite Module Error. The expression "https://abc.com/{R:1}" cannot be expanded.

Làm thế nào tôi có thể giải quyết này? Tôi hoàn toàn bối rối.

+0

Tôi nhận được điều này cũng bây giờ. Bạn đã bao giờ tìm thấy một giải pháp? Nếu có, vui lòng đăng tại đây. –

Trả lời

14

Các kết quả trùng khớp là 0.

<action type="Rewrite" url="https://abc.com/{R:1}" /> 

Sẽ không hoạt động vì bạn chỉ có một trận đấu. Bạn cần:

<action type="Rewrite" url="https://abc.com/{R:0}" /> 

Ngoài ra, điều này sẽ không hoạt động vì bạn chỉ có thể khớp trên đường dẫn bên dưới gốc trang web.

<match url="^(?!https://).*" ignoreCase="false" /> 

Có vẻ như bạn đang kiểm tra ssl. Hãy thử điều này thay vì:

 <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
     <add input="{HTTPS}" pattern="^OFF$" /> 
     </conditions> 
-1

Bạn có thể chuyển hướng thông qua cấu hình web để Hy vọng nó sẽ giúp đầy đủ

<rule name="Redirect to WWW" stopProcessing="true"> 
    <match url=".*" /> 
    <conditions> 
     <add input="{HTTP_HOST}" pattern="^abc.com$" /> 
    </conditions> 
    <action type="Redirect" url="http://www.abc.com/{R:0}" redirectType="Permanent" /> 
</rule> 
Các vấn đề liên quan