Thông tin tài liệu:
IIS Web Server - Part 5 - URL Rewrite in IIS7 with URL Rewrite Module Giới thiệu: Microsoft URL Rewrite cho IIS 7.0 cung cấp những quy tắc linh hoạt nhằm viết lại những liên kết của website theo một dang khác mà vẫn đảm bảo đúng nội dung liên kết đó .
Nội dung trích xuất từ tài liệu:
IIS Web Server - Part 5 IIS Web Server - Part 5 - URL Rewrite in IIS7 with URL RewriteModuleGiới thiệu:Microsoft URL Rewrite cho IIS 7.0 cung cấp những quy tắc linh hoạtnhằm viết lại những liên kết của website theo một dang khác mà vẫn đảmbảo đúng nội dung liên kết đó* Việc viết lại URL được dựa vào HTTP headers và server variables* Nội dung trang web.* Sự truy nhập tới nội dung trang web cần kiểm soátDownload ModuleDownload the x86 CTP version for IIS 7.0:http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1691Download the x64 CTP version for IIS 7.0:http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1692Để sử dụng được URL Rewrite bạn cần chuẩn bị đủ các yêu cầu sau:1. IIS 7.0 & ASP.NET phải được enabled;2. URL rewrite module phải được cài đặt.1. Khởi tạo và chạy thử URL RewriteĐể sử dụng URL Rewrite tôi sẽ sử dụng một ví dụ với một trang webASP.Net. Trang web này sẽ chạy trên server variables và trích xuất kếtquả của chúng ra trình duyệt.Copy toàn bộ nội dung trang ASP.NET vào thư mục%SystemDrive%inetpubwwwroot và file ví dụ trong bài này làarticle.aspx:Nội dung đoạn Code:< %@ Page Language=C# %> < !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd> URL Rewrite Module Test URL Rewrite Module Test Page Server Variable Value Original URL: < %=Request.ServerVariables[HTTP_X_ORIGINAL_URL] %> Final URL: < %= Request.ServerVariables[PATH_INFO] + ? +Request.ServerVariables[QUERY_STRING] %> Sau khi copy xong bạn vào http://localhost/article.aspx để test thử2. Tiến hành URL RewriteTrong bài này tôi sẽ hướng dẫn bạn Rewrite một link đại khái như cáctrang Vnexpress.net , Vietnamnet.vn … có dạng như bên dưới:http://localhost/article/342/some-article-titlesẽ được hiểu như link:http://localhost/article.aspx?id=342&title=some-article-title.Chúng ta sẽ sử dụng URL Rewrite UI trong IIS Manager. Bạn làm theocác bước: 1. Vào IIS Manager 2. Chọn Default Web Site 3. Trong Feature View chọn URL Rewrite ModuleTrong mục Actions bên phải chọn Add rule…Đến đây ta có 2 cách để R ewrite một trang Web:Cách 1: chọn User friendly URLSau đó nhập chuỗi article.aspx?id=123&title=abc vào ô friendly URLsChú ý là 123 sẽ đại diện cho các Request là số còn abc là đại điện cho cácRequest là chữ và bạn có thể thay thế 123 bằng con số bất kỳ và tương tựvới abc bạn có thể thay thế abc bằng một chuỗi ký tự bất kỳTại ô Select an example bạn chọn dạng Rewrite là article/123/abc/ sau đónhấp OKMột Rules mới được tạo trong bảng URL RewriteNhấp vào Edit Rule ta sẽ thấy chi tiết các giá trị của Rule này và bạn cóthể tùy chỉnh lại các giá trị nàyTrở lại thư mục Web bạn sẽ thấy Windows sẽ tự tạo ra một fileweb.config mới với nội dung là các hàm URL Rewrite tương ứngBây giờ bạn restart lại Web Server và vào lại localhost để test xem nhé:Cách 2: chọn B lank ruleĐặt tên cho Rule là Rewrite to article.aspxTrong ô Pattern bạn nhập vào chuỗi sau:^article/([0-9]+)/([_0-9a-z-]+)Chuỗi này là một biểu thức bình thường mà chỉ rõ rằng mẫu sẽ phù hợpvới bất kỳ chuỗi URL nào mà gặp những điều kiện sau đây.1. Bắt đầu với chuỗi có đặc tính là article/.2. Chứa đựng một hoặc nhiều ký tự số sau dấu / đầu tiên.3. Chứa đựng một hoặc nhiều chữ số hay dấu _ hay dấu - sau dấu /3. Định nghĩa sự hoạ t động:Một khi qui tắc mà bạn tạo ra để viết lại URL của một file ASP.net nàođó phải tương ứng với những gì mà bạn định nghĩa cho file ASP.Net đótrong mục Action, Chọn mục Rewrite trong mục Action. Trong ôRewrite URL: nhập chuỗi sau:article.aspx?id={R:1}&title={R:2}Sau đó nhấp Apply và lưu công việc của bạn lạiBây giờ bạn restart lại Web Server và vào lại localhost để test xem nhé:4. Sử dụng URL Rewrite Redirect:Với cách này bạn có thể dễ dàng chuyển trang bằng URL Rewrite như vídụ bên dướihttp://localhost/blog/some-other-title/543sẽ được chuyển đến:http://localhost/article/543/some-other-titleCách cấu hình cũng tương tự như trên nhưng có một số thay đổi khácchút: Ô N ame bạn nhập: Redirect from blog Ô Pattern nhập: ^blog/([_0-9a-z-]+)/([0-9]+) Mục Action chọn là: Redirect Ô Redirect URL nhập là: article/{R:2}/{R:1} Lưu ý là trong phần này ta đã chuyển đổi R:1 & R:2 hoán đổi vị trí chonhau rồi.Bây giờ bạn vào Web Browser nhậphttp://localhost/blog/some-other-title/323Bạn thấy nó sẽ chuyển đến tranghttp://localhost/article/323/some-other-title5. Ngăn chặn sự truy cập trực tiếp:Quy tắc thứ ba mà chúng tôi giới thiệu đến bạn được dùng để ngăn chặnmọi yêu cầu tới trang web nếu những yêu cầu đó không có định nghĩatrong URL Rewrite. Kiểu quy tắc này hữu ích khi bạn muốn ngăn ngừanhững sự nỗ lực c ...