Redirect https www to non-www using web.config asp.net iis 7 8.5

Thảo luận trong 'Lập trình web Asp.net' bắt đầu bởi admin, 23/8/18.

  1. admin

    admin Phạm Công Sơn Thành viên BQT

    Tham gia ngày:
    22/5/13
    Bài viết:
    4,617
    Đã được thích:
    1,130
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Khi bạn sử dụng https hay http thường khi cấu hình chúng ta không để ý tới 2 dạng của web site là dạng http://domain - http://www.domain - https://domain - https://www.domain nên khi cấu hình thường bị thiếu các trường hợp sử dụng www ở 2 dạng http hay https, khiến web không đạt tối ưu chẩn SEO cho web.

    Redirect https www to non(www) using web.config asp.net iis 7 8.5

    Nay itseovn hướng dẫn các bạn cách redirect http hay https từ có www sang dạng non-www (không có www) hoặc tự động di chuyển khi người dùng gõ nhầm có chữ www. trong ASP.NET sử dụng web.config để Rewrite URL.trên iis 7, 7.5 hay 8.5,....

    1. Redirect web có sử dụng SSL HTTPS

    Nếu bạn tự cấu hình IIS và web bạn có sử dụng giao thức SSL https thì chắc chắn rằng bạn đã cấu hình đủ 4 trường hợp để truy cập web ở IIS, còn không bạn sử dụng hosting ngoài thì không cần kiểm tra vì họ chắc chắn đã cấu hình giúp bạn rùi.

    Để kiểm tra với các bạn tự cấu hình IIS thì vào IIS của bạn -> Bindings...
    • Tại đây bạn có thể Add... thêm nếu thiếu Site Bindings như hình.
    redirect-https-www-to-non-asp-net-iis-7-85.jpg

    Sau khi cấu hình xong, bạn mở web.config của web lên ở thư mục root chính của hosting web của bạn.

    Kéo xuống dưới và thêm đoạn code sau vô và lưu lại là xong. Kiểm tra lại web đã ok rùi nhé.
    Mã:
     
    <system.webServer>
        <rewrite>
          <rules>
            <rule name="Force non-WWW" enabled="true" stopProcessing="true">
             <match url="(.*)" />
             <conditions logicalGrouping="MatchAny">
             <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
             <add input="{HTTPS_HOST}" pattern="^(www\.)(.*)$" />
             </conditions>
             <action type="Redirect" url="https://{C:2}/{R:1}" appendQueryString="true" />
            </rule>
            <rule name="Force HTTPS" enabled="true" stopProcessing="true">
             <match url="(.*)" />
             <conditions logicalGrouping="MatchAny">
             <add input="{HTTPS}" pattern="off" />
             </conditions>
             <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" />
            </rule>
          </rules>
        </rewrite>
      </system.webServer>
    
    2. Redirect với web http (ko có ssl)

    Nếu bạn tự cấu hình IIS thì chắc chắn rằng bạn đã cấu hình đủ 2 trường hợp để truy cập web ở IIS, còn không bạn sử dụng hosting ngoài thì không cần kiểm tra vì họ chắc chắn đã cấu hình giúp bạn rùi.

    Để kiểm tra với các bạn tự cấu hình IIS thì vào IIS của bạn -> Bindings...
    • Tại đây bạn có thể Add... thêm nếu thiếu Site Bindings như hình.
    redirect-http-www-to-non-asp-net-iis-7-85.jpg

    Sau khi cấu hình xong, bạn mở web.config của web lên ở thư mục root chính của hosting web của bạn.

    Kéo xuống dưới và thêm đoạn code sau vô và lưu lại là xong. Kiểm tra lại web đã ok rùi nhé.
    Mã:
     
    <system.webServer>
        <rewrite>
          <rules>
            <rule name="Force non-WWW" enabled="true" stopProcessing="true">
             <match url="(.*)" />
             <conditions logicalGrouping="MatchAny">
             <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
             </conditions>
             <action type="Redirect" url="http://{C:2}/{R:1}" appendQueryString="true" />
            </rule>
          </rules>
        </rewrite>
      </system.webServer>
    
    Hoặc
    Mã:
    <rewrite>
        <rules>
            <rule name="Redirect to non-www" stopProcessing="true">
                <match url="(.*)" negate="false"></match>
                <action type="Redirect" url="http://domain.com/{R:1}"></action>
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^domain\.com$" negate="true"></add>
                </conditions>
            </rule>
        </rules>
    </rewrite>
    
    • Đổi domian thành tên domain web của bạn.
     
    Cảm ơn đã xem bài:

    Redirect https www to non-www using web.config asp.net iis 7 8.5



Like và Share ủng hộ ITSEOVN