Re: [問題] 網址截斷處理

看板C_Sharp (C#)作者 (笨嘎嘎)時間12年前 (2013/08/06 09:20), 編輯推噓0(004)
留言4則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《kevin888 (菸酒生)》之銘言: : 以往我在處理網址會產生404的相關都會丟到IIS去處理 : 今天被要求在產生404前就必須將不認可的網址截斷處理 : 當然網址也有一些規則可供我判斷 : 不過我沒這樣玩過,一時間有點卡卡的 : 例如某網址是www.abc.com : 當我檢查到網址沒有我要關鍵字與字碼數就要截斷導回首頁 : 例如www.abc.com/?key=abc&whoyouare=iamsuperman : 或是www.abc.com/who=isme : 上面2個 只有key=abc對我有用,後面都是要截斷 : 如果沒有key=abc導回首頁 : 如果key=abcd也要導回首頁 : 我卡在要判斷對我有用的KEY跟當沒有KEY時流程應該怎麼走比較好 : 上面的KEY只是其中一個,總共要判斷3個KEY1,key2,key3 : 盼望前輩們可以指點迷經~感謝 先重複你的需求, 1. 檢查key是否等於abc 2. 首頁是www.abc.com 3. key值錯誤就回首頁 Uri MyUri = 你的網址; Uri HomepageUri = MyUri.Host; //Uri HomepageUri = MyUri.Authority; //Uri HomepageUri = MyUri.DnsSafeHost; // 上面三個你挑一個用 if (CheckKey(MyUri)) { // 做你要的事情 } else { // 返回首頁www.abc.com } private bool CheckKey(Uri In_Uri) { string Key1 = "key=abc"; string Key2 = "key=123"; string Key3 = "key=xyz"; return In_Uri.ToString().Contains(Key1) || In_Uri.ToString().Contains(Key2) || In_Uri.ToString().Contains(Key3); } 大致概念這樣,你可以自己再修。 不知道有沒有回答到? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.249.16.135 ※ 編輯: StupidGaGa 來自: 60.249.16.135 (08/06 09:22) ※ 編輯: StupidGaGa 來自: 60.249.16.135 (08/06 09:23)

08/07 00:08, , 1F
用contains方式來解 www.abc.com?key=abcd 會是OK的啊
08/07 00:08, 1F

08/07 00:09, , 2F
試試System.Web.HttpUtility.ParseQueryString
08/07 00:09, 2F

08/07 00:10, , 3F
或是用regex自己拆 (也許問題比較多 意想不到的狀況)
08/07 00:10, 3F

08/07 00:11, , 4F
之後再一一檢查所需的key 存在或值正確
08/07 00:11, 4F
文章代碼(AID): #1I04zf4j (C_Sharp)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1I04zf4j (C_Sharp)