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. 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é. Ý nghĩa: Tự động redirect từ http:// sang https:// Tự động redirect từ http://www.domain sang https://domian Tự động redirect từ https://www.domain sang https://domain 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. 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é. Tự động redirect từ http://www.domain sang https://domian 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.