xiazaizhan 2014-05-02 16:36 采纳率: 0%
浏览 3351

请教下 无损外链跳转url.asp?url=http://xxx

以下代码如何实现过滤以 http ftp www https 开头的网址

修改前链接格式为 域名/url.asp?url=http://www.baidu.com

修改后链接格式为 域名/url.asp?url=baidu.com

请高手指点 谢谢。

<%

dim url

dim baiyea_url

baiyea_url=request("url")

Response.Redirect baiyea_url

%>

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 01:02
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在.NET中,我们可以使用Request.Url属性来获取请求的URL。然后,我们可以检查这个URL是否包含特定的字符串(在这种情况下是"www"),如果包含了,则可以将其替换为指定的新值(在这种情况下是"http://www.baidu.com")。下面是一个简单的示例:

    using System;
    using System.Net;
    
    namespace WebFilter
    {
        class Program
        {
            static void Main(string[] args)
            {
                string originalUrl = "http://www.baidu.com";
                string filteredUrl = FilterUrl(originalUrl);
                Console.WriteLine(filteredUrl);
            }
    
            static string FilterUrl(string url)
            {
                if (url.StartsWith("http", StringComparison.OrdinalIgnoreCase) || 
                    url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
                {
                    return "http://" + url.Substring(7); // 将"/url.asp?url=" 替换为"http://"
                }
                else
                {
                    return url; // 如果不匹配任何已知的模式,返回原始URL
                }
            }
        }
    }
    

    这段代码首先定义了一个名为FilterUrl的方法,它接受一个字符串参数url。然后,它检查url是否开始于HTTP或HTTPS。如果是,那么它将"/url.asp?url="替换为"http://".如果不是,那么它就返回原始的URL。

    注意:这种方法并不完美,因为它可能会误报某些情况,例如当用户在URL中添加了额外的字符或者URL中包含多个域名时。但是,在大多数情况下,这应该足够解决了你的需求。

    评论

报告相同问题?