Chia Sẽ Kinh Nghiệm Về IT



Tìm Kiếm Với Google
-


Gởi Ðề Tài Mới  Gửi trả lời
 
Công Cụ Xếp Bài
Tuổi 27-04-2013, 10:30 AM   #1
hoctinhoc
Guest
 
Trả Lời: n/a
Url Rewriting đuôi .html với IIS6



Url Rewriting đuôi .html với IIS6

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:/quantrituctuyen.vn/Product.aspx?ProductID=102 sẽ được viết lại thành http://quantritructuyen.vn/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.
Mọi việc diễn ra thật suôn sẻ với website chạy trên IIS7. Nhưng với IIS6 và các phiên bản thấp hơn bạn sẽ gặp phải lỗi như sau:





Nguyên nhân phát sinh lỗi là do IIS6 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:

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 IIS6 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 click phải chuột vào website của bạn, chọn Properties. Trong mục Home Directory chọn Configuration...




Chọn Add thêm Application Extensions.




Thêm extension .html, Executable làaspnet_isapi.dll, quan trọng nhất là phải bỏ ô check Verify that file exists.












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. Tuy nhiên như tôi đã nói, cách này không toàn diện lý do là nếu bạn nhập đường dẫn thực sự của 1 file .html trên website của mình thì kết quả sẽ là: Lỗi 324 (net::ERR_EMPTY_RESPONSE).




Tác giả:
binhpro


  Trả lời ngay kèm theo trích dẫn này
Gửi trả lời



Quyền Hạn Của Bạn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Hình Cảm xúc đang Mở
[IMG] đang Mở
Mã HTML đang Tắt




Bây giờ là 02:02 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.