Friday , 22 November 2024
HOT

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

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

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

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ẻ 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}&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ên IIS7

Mở IIS lên, bên cột Connection ở bên trái ta chọn Website cần Rewrite URL. Ở khung bên phải, vào URL Rewrite. và chọn Add Rule(s)…

Chọn tiếp User-friendly URL

Trong ô đầu tiên bạn nhập vào chuỗi: song.aspx?id=123&title=abc
Ở đây 123 và abc ở đây sẽ đại diện cho các Request
Trong ô thứ 2 bạn chọn kiểu URL mà trình duyệt hiển thị cho người dùng. Ví dụ ở đây mình chọn song/123/abc

Xong, ta nhấn OK, và 1 Rule mới đã được tạo ra

Bạn để ý sẽ thấy có 1 file Web.Config sẽ được tạo ra trong thư mục web của bạn, hoàn toàn giống như việc bạn tự tạo một file Web.Config bằng tay để cẩu hình Rewrite URL

Thể là xong các bước để cấu hình Rewrite URL 1 cách đơn giản. Chúc các bạn thực hiện thành công

N g u ồ n : m e o t o m . n e t

Leave a Reply

Your email address will not be published. Required fields are marked *

*