Javascript 从URL中获取用户名,并使用带有该用户名的查询字符串重定向
我想实现一个jquery脚本,该脚本在域地址中的斜杠“/”之后使用任何名称,并使用带有用户名的querystring将用户重定向到默认页面。例如,如果用户写入mydomain.com/username,我想将页面重定向到mydomain.com/default.aspx?name=username 我怎样才能做到这一点? 谢谢 解决方案 我在global.asa文件中添加了以下代码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
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);
}
}