日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI

發布時間:2023/11/27 生活经验 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

URL重寫已經有很多的方法,但是多數都有一個缺點,就是不支持無擴展名的網頁。微軟提供的方法需要在根目錄里面建立jyk的文件夾,然后再建立一個default.aspx的文件,如果您有100名會員的話,這是一個不可想象的事情。

另一個方法就是使用ISAPI過濾器,但是這個一般需要在服務器上安裝一個DLL文件,自己沒有服務器就不好辦了。

下面提供一個可以說是我發明的一個方法——不知道以前有沒有人想到過——利用兩個特性來實現。

第一個:IIS里面的找不到文件的錯誤設置。

第二個:asp.net 里面的Server.Transfer("topic.aspx?id=jyk");

這兩個結合起來就可以達到我們的目的了。

思路:利用404b錯誤捕捉客戶的請求,再使用Server.Transfer轉向。

在我們訪問http://www.aaa.com/jyk 的時候,假設這時服務器上沒有jyk文件夾,那么會返回什么結果呢?會返回一個“無法找到該頁”的頁面,那么這個返回結果能不能自己控制一下呢?很幸運IIS提供了這個功能,我們可以把這樣的錯誤指定到網站里的一個頁面。

操作步驟:

第一步:打開IIS管理器,網站屬性——自定義錯誤標簽——404錯誤——點擊修改——修改“消息類型”為“URL”,在下面的文本框里填寫處理這個錯誤得頁面名稱,比如/none.aspx。

第二步:在我們的網站根目錄下建立一個none.aspx的網頁。在里面隨意寫點內容(測試用)。

設置完畢,這時再訪問http://www.aaa.com/jyk,顯示的就是 none.aspx的網頁內容了。注意這時瀏覽器里面的URL地址仍然是http://www.aaa.com/jyk,而不是http://www.aaa.com/none.aspx 。這一點很重要,如果地址變了,那就沒有意義了。

那么我們怎么把頁面轉到我們希望的頁面呢,這時所有的找不到文件的情況都會轉到none.aspx文件,顯然這不是我們想要的最終結果。那么我們怎么獲取客戶輸入的網址呢?

打開none.aspx的后臺文件,

string URL = Request.Url.Query;

我們可以使用上面的語句來獲取URL地址,得到的地址格式是:

?404http://www.aaa.com/jyk

其中 “?404”是固定的,過濾掉它就是瀏覽器里面的URL地址了。

剩下的事情就是根據情況來轉換網頁了。可以拆串,再用switch來判斷;也可以用正則表達式來判斷。因為我正則不熟,我采用的是switch的方式。正則表達式請參考其他的資料,我也在找,如果您找到了請共享一下,謝謝。

優點:

1、 支持無擴展名的網頁。不用建立文件夾和文件。

2、 思路簡單,用法也很簡單,代碼也不復雜,不涉及高深的理論;

3、 支持搜索引擎,就是說可以被各大搜索引擎搜錄。

4、 可以配合域名泛解析使用。

缺點:

1、 需要修改一下IIS 404b錯誤的處理方法;

2、 效率要略微低一點。

3、 如果您只使用.aspx的擴展名的話就可以不用修改IIS了。

4、 Asp不支持。因為asp的Server.Transfer不能帶參數(?id=jyk),不能傳遞參數的重寫幾乎沒有什么意義。?

總結

以上是生活随笔為你收集整理的ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。