2013-05-02 26 views
5

Tôi không thể tìm ra cách để chuyển đổi triển khai web.config của mình hoạt động cho quy tắc viết lại. Tôi đã thử những điều sau đây và nó bỏ qua nó.cập nhật quy tắc viết lại url với việc chuyển đổi web2012 triển khai web2012

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 


<system.webServer> 
<rewrite xdt:Transform="Replace"> 
    <rules> 

    <rule name="Force HTTPS On Login/Register" stopProcessing="true"> 
     <match url="Account/Login(.*)|Register(.*)" ignoreCase="true" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="^OFF$" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Permanent" /> 
    </rule> 


    <rule name="Force HTTPS Off" stopProcessing="true"> 
     <match url="((Account/Login(.*))|(Register(.*)))" negate="true" ignoreCase="true" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="^ON$" ignoreCase="true" /> 
     </conditions> 
     <action type="Redirect" url="http://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" /> 
    </rule> 


    </rules> 
</rewrite> 
</system.webServer> 
+0

hoạt động như bạn đã đề xuất. cho đến nay tôi đã không phải sử dụng slowcheetah. Tôi tiếp tục nghe về nó nhưng chỉ ghét phải tiếp tục thêm vào những phụ thuộc của tôi. –

Trả lời

6

Tôi sử dụng SlowCheetah để chuyển đổi web.config của mình cho sản xuất. Tôi ban đầu đã cố gắng những gì bạn đã cố gắng, nhưng phát hiện ra rằng tôi đã có thêm một sản phẩm nào

<rewrite> 
    <rules /> 
</rewrite> 

để web.config cơ sở

và sau đó viết một biến đổi như

<system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="Redirect to HTTPS" stopProcessing="true" xdt:Transform="Insert"> 
      <match url="(.*)" /> 
      <conditions> 
      <add input="{HTTPS}" pattern="^OFF$" /> 
      </conditions> 
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> 
     </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

(đó là một chuyển đổi chuyển đổi, nhưng tôi nghĩ rằng cùng một hiệu trưởng nên áp dụng).

Lưu ý xdt:Transform="Insert" để chèn một nút mới vào bộ xương <rules /> trong tệp cấu hình cơ sở.

+0

Xin chào Eric, Bạn đã bao giờ gặp sự cố trong đó quy tắc trống cho lỗi http 500.19 chưa? Máy ảo azure của tôi ném lỗi đó, nhưng máy chủ colo của tôi (cùng một hệ điều hành) thì không. –

+0

Không, tôi không thấy tình huống đó, mặc dù tôi không sử dụng Azure. Có lẽ gửi một câu hỏi mới về lỗi đó cụ thể cho Azure? Lỗi đó có nghĩa là tệp cấu hình không hợp lệ. Bạn có chắc chắn rằng biến đổi đã được áp dụng đúng cho Azure VM? http://blogs.msdn.com/b/webtopics/archive/2010/03/08/troubleshooting-http-500-19-errors-in-iis-7.aspx –

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