Quản trị net diễn đàn chia sẻ thông tin các thủ thuật mạng, internet bảo mật thông tin dành cho giới IT VIệt hy vọng là nơi bổ ích cho cộng đồng

Quản trị net diễn đàn chia sẻ thông tin các thủ thuật mạng, internet bảo mật thông tin dành cho giới IT VIệt hy vọng là nơi bổ ích cho cộng đồng (http://quantrinet.com/forum/index.php)
-   Quản trị Server web IIS, FTP Server (http://quantrinet.com/forum/forumdisplay.php?f=87)
-   -   Url Rewriting đuôi .html với IIS7, IIS 7.5, IIS 8 (http://quantrinet.com/forum/showthread.php?t=9403)

hoctinhoc 02-05-2013 10:50 AM

Url Rewriting đuôi .html với IIS7, IIS 7.5, IIS 8
 

Url Rewriting đuôi .html với IIS7, IIS 7.5, IIS 8



URL Rewriting là kỹ thuật viết lại Url của trang web để thân thiện hơn với người dùng cũng như các công cụ tìm kiếm.

Ví dụ như một địa chỉ trang sản phẩm: http:/quantrinet.com/Product.aspx?ProductID=102 sẽ được viết lại thành http://quantrinet.com/san-pham/dien-thoai/Nokia-E71-102.html


Kỹ thuật Url Rewriting trong ASP.NET được thực hiện rất dễ dàng với công cụ urlrewritingnet. Thực hiện việc này đã được giới thiệu trong bài viết : Rewrite URL trong ASP.NET bằng công cụ UrlRewritingNet.

Khi bạn cấu hình URL Rewrite với phần đuôi là .html thì khi chạy trên IIS6 hoặc IIS 7 đều bị lỗi sau:


http://blog.alexonasp.net/image.axd?...0129/image.png



Hoặc lỗi

http://www.raidenhttpd.com/en/manual/img/404.png


Nguyên nhân phát sinh lỗi là do IIS tự động kiểm tra file (không phải dạng excutable) xem có tồn tại không và lỗi 404 được thả ra trước khi ASP.NET Application của chúng ta có cơ hội làm gì.
Còn đối với các file Executable (.aspx,.ashx,ascx,...) IIS gọi tới các ISAPI để thực thi các file này (cụ thể ở đây là aspnet_isapi.dll trong .Net Framework). Khi không tìm thấy tài nguyên, ISAPI này sẽ thả ra lỗi 404 như sau:



http://quantritructuyen.vn/Upload/de...ewriting_2.png

UrlRewriting
sẽ bắt lỗi 404 này và chuyển hướng xử lý sang file với URL thực. Như vậy là với sử dụng UrlRewritingNET trên IIS chúng ta chỉ có thể viết lại đường dẫn với các executable extensions như .aspx. Liệu có giải pháp cho vấn đề này?
Câu trả lời là có thể. Ở đây tôi xin đưa ra chon bạn một cách tuy không tối ưu nhưng có thể giải quyết được vấn đề này.

Trên IIS ---> Site --> Chọn website của bạn ---> duoble lick vào Handler Mappings --> chọn Add Scrip Maps và làm theo hình bên dưới


http://quantrinet.com/forum/images/Scrip Map.jpg


Sau bước này đường dẫn được viết lại với extension .html đã làm việc bình thường.


Chú ý:

Nếu bạn chọn chạy file Script: aspnet_isap.dll của .net framwork 64bit không hợp thì bạn có thể chọn lại file: aspnet_isap.dll của phiên bản Framework 32 bit trong thư mục

Các bạn chú ý luôn phần chọn Version của phiên bản .netframework luôn nha

Thí dụ: website bạn chạy .net framwork 2.0 thì bạn chọn version 2, nếu website bạn chạy .net framework 4 thì chọn version 4


C:\Windows\Microsoft.NET\


Chúc các bạn thành công!

http://quantrinet.com/forum/images/s...0Folder/09.gif


Bây giờ là 01:44 PM. Giờ GMT +7

Diễn đàn tin học QuantriNet
quantrinet.com | quantrimang.co.cc
Founded by Trương Văn Phương | Developed by QuantriNet's members.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.