问题描述
各位大大们,请问大家一个问题,怎么过滤掉非站内的链接,比如,以CSDN网站链接为例(过滤掉非csdn域名的链接):场景1:http://www.iteye.com/?a=http://www.csdn.net/如果用户输入这个,肯定是不行的,要提示用户存在非指定域名的链接;场景2:http://www.csdn.net/?a=http://www.iteye.com/这个链接,是可以的;场景3:http://csdn.net/?a=http://www.iteye.com/这个链接,是可以的;场景4:www.csdn.net/?a=http://www.iteye.com/这个链接,是可以的;其中,场景2、场景3、场景3之间的区别在于是否输入www的问题,这个就是说,http、www这个是可选的,是否输入,都可以;场景4:http://bbs.csdn.net/?a=http://www.iteye.com/存在二级域名,也是可以的。综上所述:指定的域名是csdn.net,可以存在二级域名,而且http和www可输入可不输入,而且这个域名是打头的,就是不能像场景1那样(因为场景1这样的网站,是会访问iteye,而不是访问csdn),对于场景1中的,问号?,其中#$等都是不可以的各位,不知道有什么办法,可以实现这个功能么?java和js的
解决方案
解决方案二:
不怕麻烦的话,就把几种http请求的协议手动配置起来以及域名后缀什么的,然后再根据uri进行截取加判断,呵呵最愚蠢的办法,不知道还有没有更好的……等高人出现
解决方案三:
没人回帖,自己顶一个先。求帮助。。。。。
解决方案四:
你写的每个字我都认识,就是没看明白你再说啥?
解决方案五:
引用3楼bigc2001的回复:
你写的每个字我都认识,就是没看明白你再说啥?
就是要过滤掉非本网站内的外部链接,但是要考虑到存在二级域名和是否输入httpwww的情况。
解决方案六:
写个Filter用正则匹配一下不可以吗??
解决方案七:
引用5楼huiwenjie168的回复:
写个Filter用正则匹配一下不可以吗??
可是可以,但是,我正则不太会。。。。我昨天试着写了下,没写太对。。。。
解决方案八:
http://csdn.netwww.csdn.nethttp://www.csdn.net意思是可以是http://orhttp://www.orwww.打头的,然后跟域名