Thứ bảy, ngày 3 tháng 12 năm 2016

Cấu hình sử dụng URL Rewrite Module trong IIS 7

Ngày đăng: 25/3/2011, 16:3:34AM | Lượt xem: 11,132
Hot!

Trong bài Sử dụng Url Rewrite trong ASP.NET các bạn đã có thể Rewrite Url dễ dàng với DLL của UrlRewritingNet.UrlRewriter nhưng cách này thường không hiệu quả và còn nhiều hạn chế nhưng đó là đối với IIS 6 lên IIS 7 mọi thứ đã trở nên dễ dàng hơn khi Microsoft đã hỗ trợ Module Url Rewrite tích hợp vào IIS.

Để sử dụng nó tất nhiên bạn phải cài đặt IIS 7.

IIS 7 chỉ mới xuất hiện trên bản Windows Vista trở lên (Server 2008, Windows 7 và Windows Server 2008 R2)

Mặc định trên các bản Windows này thì IIS không được cài mặc định, bạn phải cài đặt nó

Với Windows 7 bạn vào Start --> Control Panel --> Programs and Features --> Turn Windows features on or off --> bạn chọn Internet Infomation Services và đừng quên chọn cài đặt ASP.NET

Cấu hình sử dụng URL Rewrite Module trong IIS 7

Sau khi cài đặt xong IIS các bạn Download tiếp Url Rewrite Module trên trang Web chính thức của IIS

http://www.iis.net/download/URLRewrite

Bạn tiến hành cài đặt Url Rewrite Module sau đó trong IIS của bạn sẽ xuất hiện thêm 1 Item là Url Rewrite Module

Cấu hình sử dụng URL Rewrite Module trong IIS 7

Như vậy là bạn đã hoàn tất việc cài đặt cho Url Rewrite Module cho IIS của mình, bây giờ để config chúng ta hãy làm như sau:

Có 2 cách đó là bạn có thể cấu hình ngay tại IIS bằng cách click đúng chuột vào Item này và tiến hành thêm các Rule hoặc bạn có thể cấu hình ngay tại file Web.Config nếu bạn không có quyền Remote lên Server

Cách 1: Cấu hình tại file Web.Config

Các bạn mở file Web.Config ra tìm đến dòng cuối dưới phần Comment

    <!--
        The system.webServer section is required for running ASP.NET AJAX under Internet
        Information Services 7.0.  It is not necessary for previous version of IIS.
    -->

nằm trong thẻ <system.webServer> các bạn thêm tag Rewrite cấu trúc như sau:

<rewrite>         
    <rules>    
        <rule name="NameToRewrite" enabled="true"> 
            <match url="^article/([0-9]+)/([_0-9a-z-]+)" /> 
            <action type="Rewrite" url="Article.aspx?ID={R:1}&amp;Title={R:2}" /> 
        </rule> 
    </rules>
</rewrite>

tại thẻ <rule bạn hãy quan tâm đến thuộc tính Name bởi vì thuộc tính này là duy nhất có nghĩa mỗi một Rule khác nhau thì name cũng phải khác nhau, thuộc tính enable ở đây là để xác định xem bạn có sử dụng nó hay không (True là có|False là không)

thẻ tiếp theo là <match với thuộc tính url tại đây bạn phải nhập chuỗi Regular Expression cho nó, với ví dụ trên mình đặt như sau:

^article/([0-9]+)/([_0-9a-z-]+)

ý nghĩa là bắt đầu với chuỗi có đặc tính là article/, chứa đựng 1 hoặc nhiều ký tự số tự nhiên đằng sau dấu / đầu tiên, chứa đựng 1 hoặc nhiều chữ số hay dấu "_" hoặc "-" sau dấu /

- thẻ <action dùng để xác định đường dẫn gốc tại đây nó nhận vào 2 QueryString là {R:1} và {R:2} tương ứng với số patten trên thẻ match

- Bạn Save lại file Web.Config và trở lại Browser gõ http://localhost/article/123/this-is-title

Và chúng ta đã có kết quả

- Sử dụng Url Rewrite Redirect:

bạn dễ dàng Redirect từ 1 Url cũ sang 1 Url mới

http://localhost/blog/this-is-title/123.aspx

sang

http://localhost/article/123/this-is-title

bạn thêm 1 Rule mới

<rule name="RewriteToRedirect" enabled="true"> 
     <match url="^blog/([_0-9a-z-]+)/([0-9]+).aspx" />  
     <action type="Redirect" url="article/{R:2}/{R:1}" />              
</rule>

như vậy sau khi bạn save lại và chạy trên Browser đường dẫn

http://localhost/blog/this-is-title/123.aspx

thì IIS tự động Redirect bạn trở về link

http://localhost/article/123/this-is-title

Ngăn chặn truy cập trực tiếp

Với cách này chúng ta sẽ ngăn chặn mọi request đến Website nếu request đó không được định nghĩa trong Url Rewrite Module. Kiểu quy tắc này hữu ích khi bạn muốn ngăn ngừa những sự nỗ lực của hacker muốn tìm cách truy cập trực tiếp file nhằm khai thác lỗi SQL Injection.

<rule name="Fail bad requests">
      <match url="."/>
      <conditions>
        <add input="{HTTP_HOST}" pattern="localhost" negate="true" />
      </conditions>
      <action type="AbortRequest" />
</rule>

Cách 2: Cấu hình trực tiếp trên IIS

www.youtube.com/watch

 Chia sẻ qua: 
Hot!
Ý kiến bạn đọc

These items will be permanently deleted and cannot be recovered. Are you sure?

Gallery

image

Maecenas viverra rutrum pulvinar

Maecenas viverra rutrum pulvinar! Aenean vehicula nulla sit amet metus aliquam et malesuada risus aliquet. Vestibulum rhoncus, dolor sit amet venenatis porta, metus purus sagittis nisl, sodales volutpat elit lorem…

Read more

Text Links

Thiết kế logo chuyên nghiệp Insky
DAFABET
W88 w88b.com/dang-ky-tai-khoan-w88
W88
Copyright © 2011 - 2012 vietshare.vn by phamkhuong102@gmail.com doanhkisi2315@gmail.com. All rights reserved.