关于ASP.NET访问路径的一个问题!
本人学ASP.NET不久,望大家指点一二。看到过有许多网站的URL地址是这样的。一:http://www.a.com/adfksf-sfkfds-fkfa-fdaf/te...
本人学ASP.NET不久,望大家指点一二。
看到过有许多网站的URL地址是这样的。
一: http://www.a.com/adfksf-sfkfds-fkfa-fdaf/test/a.html
二: http://www.a.com/test/a.html?id=2&name=tst
对于第一种情况:
a.html在服务器上的实际路径是:Site_Root/test/a.html。按理说要访问a.html应该是 http://www.a.com/test/a.html,可在这里这样也能访问,而中间的"adfksf-sfkfds-fkfa-fdaf"却是跟据不同用户的用户访问而不同的,请问这是怎么实现的。
对于第二种情况:
在我印像中可有接收参数并处理的页面只有动态页面吧(比如.aspx).在这里静态页面也接收并处理参数,并且这个静态页面(.html)还可以跟据传递的参数不同页面的内容也不同。这完全是动态页面的功能嘛,怎么静态页面也有这样的功能吗?请问这个功能是怎么实现的! 展开
看到过有许多网站的URL地址是这样的。
一: http://www.a.com/adfksf-sfkfds-fkfa-fdaf/test/a.html
二: http://www.a.com/test/a.html?id=2&name=tst
对于第一种情况:
a.html在服务器上的实际路径是:Site_Root/test/a.html。按理说要访问a.html应该是 http://www.a.com/test/a.html,可在这里这样也能访问,而中间的"adfksf-sfkfds-fkfa-fdaf"却是跟据不同用户的用户访问而不同的,请问这是怎么实现的。
对于第二种情况:
在我印像中可有接收参数并处理的页面只有动态页面吧(比如.aspx).在这里静态页面也接收并处理参数,并且这个静态页面(.html)还可以跟据传递的参数不同页面的内容也不同。这完全是动态页面的功能嘛,怎么静态页面也有这样的功能吗?请问这个功能是怎么实现的! 展开
2个回答
2013-12-28
展开全部
第一种情况:
在Global.asax文件里添加Application_BeginRequest事件处理.
protected void Application_BeginRequest(Object sender, EventArgs e)
{
string oldUrl = HttpContext.Current.Request.RawUrl;
string pattern = @"^/(.+)/test/a.html$";
string replace = "/test/a.aspx?un=$1";
if (Regex.IsMatch(oldUrl, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled))
{
string newUrl = Regex.Replace(oldUrl, pattern, replace, RegexOptions.Compiled | RegexOptions.IgnoreCase);
this.Context.RewritePath(newUrl);
}
}
第二种情况:
在webconfig.xml里面:
<urlMappings enabled="true">
<add url="~/a.html" mappedUrl="~/a.aspx"/>
</urlMappings>
在Global.asax文件里添加Application_BeginRequest事件处理.
protected void Application_BeginRequest(Object sender, EventArgs e)
{
string oldUrl = HttpContext.Current.Request.RawUrl;
string pattern = @"^/(.+)/test/a.html$";
string replace = "/test/a.aspx?un=$1";
if (Regex.IsMatch(oldUrl, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled))
{
string newUrl = Regex.Replace(oldUrl, pattern, replace, RegexOptions.Compiled | RegexOptions.IgnoreCase);
this.Context.RewritePath(newUrl);
}
}
第二种情况:
在webconfig.xml里面:
<urlMappings enabled="true">
<add url="~/a.html" mappedUrl="~/a.aspx"/>
</urlMappings>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
2013-12-28
展开全部
~/Images/img01.gif:项目所在目录的虚拟路径
/Images/img01:web服务器的虚拟路径
/Images/img01:web服务器的虚拟路径
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询