url進行重寫和二級域名的url重寫
阿新 • • 發佈:2019-01-01
我們的專案有分站,分站也需要對url進行重寫。
我們主站採用的urlrewriter進行重寫。
這個方法還是不錯的,只需進行檔案的配置即可對url進行重寫,偽靜態。使用起來真的特別舒服。
具體使用方法可以百度、google 》 urlrewriter的使用
可是這個方法對二級域名,通過我查資料,反正折騰了不少時間。最後我放棄了,因為這個太麻煩了。
我後來看到一個方法可以對url進行重寫,我就想到註冊模組與程式進行處理,
我專案中為了控制分站,有些差異化的處理放到了global中去,本來要進行重寫的頁面不多。還要對這些頁面進行處理,我直接就在global中寫了這些頁面的重寫。
首先,我先判斷是否是經過我的目標連結來了(簡單的我直接就簡單判斷一下,複雜的我用的正則)
例如 www.xxx.com/bbb/ 這樣的是我定義的格式 如果來了www.xxx.com/bbbb 這樣就不是我要的,我要拋棄它
其次,是我要的 我就要把這個地址獲取過來,進行分割。
如上的例子,我直接用簡單的字串分割 以得到我想到的引數 bbb 如果是複雜的當然還得正則了。
最後 把引數獲取過來了 該重寫真實的地址了
例如我的真實地址是 default.asx 真實的url應該是 default.aspx?id=bbb 那麼我就要把bbb這個引數給它程式就是:
Context.RewritePath("/default.aspx?fz=" +獲取到的引數變數);
這樣就會重寫至
default.aspx?id=bbb 這個地址了。也就實現了 我輸入www.xxx.com/bbb/ 真正開啟的頁面是www.xxx.com/default.aspx?id=bbb