Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从URL中获取用户名,并使用带有该用户名的查询字符串重定向_Javascript_Asp.net_Url_Url Redirection_Server - Fatal编程技术网

Javascript 从URL中获取用户名,并使用带有该用户名的查询字符串重定向

Javascript 从URL中获取用户名,并使用带有该用户名的查询字符串重定向,javascript,asp.net,url,url-redirection,server,Javascript,Asp.net,Url,Url Redirection,Server,我想实现一个jquery脚本,该脚本在域地址中的斜杠“/”之后使用任何名称,并使用带有用户名的querystring将用户重定向到默认页面。例如,如果用户写入mydomain.com/username,我想将页面重定向到mydomain.com/default.aspx?name=username 我怎样才能做到这一点? 谢谢 解决方案 我在global.asa文件中添加了以下代码 protected void Application_BeginRequest(object sender, Ev

我想实现一个jquery脚本,该脚本在域地址中的斜杠“/”之后使用任何名称,并使用带有用户名的querystring将用户重定向到默认页面。例如,如果用户写入mydomain.com/username,我想将页面重定向到mydomain.com/default.aspx?name=username

我怎样才能做到这一点? 谢谢

解决方案

我在global.asa文件中添加了以下代码

protected void Application_BeginRequest(object sender, EventArgs e)
    {
        Uri uriAddress = new Uri(Request.Url.AbsoluteUri);

        if (uriAddress.Segments != null && uriAddress.Segments.Length > 1 && !String.IsNullOrEmpty(uriAddress.Segments[1]))
        {
            string SegmentUsername = uriAddress.Segments[1];
            Response.Redirect("default.aspx?name=" + SegmentUsername);                
        } 
    }

在这里,它是一个完整的解决方案,防止URL重写。。

从那里发短信。。
URL重写是拦截传入Web请求并将请求重定向到其他资源的过程。执行URL重写时,通常会检查所请求的URL,并根据其值将请求重定向到其他URL。例如,网站重新构造指定目录或文章的网页,当通过URL从文章或目录访问网页时,URL会自动移动到博客目录。这是通过URL重写实现的。

这里是一个典型的示例,它适用于您的特定情况。。 并让您了解URL重写的工作原理

将此类添加到asp.net网站应用程序\代码文件夹中

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text.RegularExpressions;

/// <summary>
/// Summary description for Class1
/// </summary>
 public class URLRule
    {
        public string URLPateren { set; get; }
        public string Rewrite { set; get; }
    }
    public class ListURL : List<URLRule>
    {

        public ListURL()
        {
            //may be you need to redefine this rule in order to make it mature.
            URLRule obj = new URLRule();
            obj.URLPateren = "/(.*)?/(.*)";
            obj.Rewrite = "default.aspx?name=$2";
            Add(obj);
            //here you can add more rules as above..

        }

        public string Process(string str)
        {

            Regex oReg;

            foreach (URLRule obj in this)
            {
                oReg = new Regex(obj.URLPateren);
                Match oMatch = oReg.Match(str);

                if (oMatch.Success)
                {
                    string s = oReg.Replace(str, obj.Rewrite);
                    return s;
                }
            }
            return str;
        }
    }
在这里,您可以在default.aspx页面的加载事件中检查查询字符串值

protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString.HasKeys()) {
            string queryvalue = Request.QueryString["name"];
            Response.Write("User Name : " + queryvalue);

        }
    }
我尝试了这个网址,效果很好

localhost:3030/WebSite3/xyz123

如果它不起作用或url模式已更改,请尝试重新定义URLRule。 这里的“xyz123”是名称。
我希望它能工作…

您应该在服务器端执行此操作(解析URL、重定向等)。JS和jQuery与描述的情况无关。我认为从服务器端这样做是最佳实践。。很可能你需要用URL重写来做这件事。有关于我的案例的直接文档吗?从未使用过URL修剪、解析等
protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString.HasKeys()) {
            string queryvalue = Request.QueryString["name"];
            Response.Write("User Name : " + queryvalue);

        }
    }