作者StupidGaGa (笨嘎嘎)
看板C_Sharp
标题Re: [问题] 网址截断处理
时间Tue Aug 6 09:20:38 2013
※ 引述《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)
1F:→ soup514:用contains方式来解 www.abc.com?key=abcd 会是OK的啊 08/07 00:08
2F:→ soup514:试试System.Web.HttpUtility.ParseQueryString 08/07 00:09
3F:→ soup514:或是用regex自己拆 (也许问题比较多 意想不到的状况) 08/07 00:10
4F:→ soup514:之後再一一检查所需的key 存在或值正确 08/07 00:11