ASP.NET——URL重写,伪静态
我们用.net开发的网站,都是动态网页。其扩展名一般是.aspx,ashx等。有的时候还带着参数,如:http://www.NLYJF.com/user/blogs.aspx?id=2123 此类样式的URL,这样的格式对用户来说,很难看,感觉很不舒服。而搜索引擎在收录链接的时候,排名也会靠后。因此我们有必要把URL写成类似于: http://www.NLYJF.com/user/blogs/2123.html 这样的形式。
在用户输入.html的时候,其实访问的是.aspx格式的网页,只不过中间被“转换”了一下。
URL重写:
①新建一个全局配置文件,Global.asax。
②在Global.asax中,在BeginRequest阶段添加代码

void Application_BeginRequest(object sender,EventArgs e)
{
//Accept the URL inputed by users
string url=Request.RawUrl;
Regex regex=new Regex(@"user/blogs/(\d+).htm");
Match match=regex.Match(url);
if(match.Success)
{
string id=match.Gourp[1].Value;
string s="user/blogs.aspx?id="+id;
HttpContext.Current.RewritePath(s);
}
}
要想URL重写,肯定是会用到正则表达式的。
这样,就成功了。
——————————————————————
另外,微软还提供了一个dll文件,URLWriter.dll ,
我们也可以使用它来直接进行URL重写。
①添加引用URLwriter.dll文件
②在web.config文件中,找到<configSections>节点,在结束标志</configSections>前添加代码

<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandlers, URLRewriter">
</configSections>
③在web.config文件中,还是找到<configSections>节点,在结束标志</configSections>后,添加代码

<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/user/blogs.aspx</LookFor>
<SendTo>~/user/blogs.aspx?id=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
④找到节点<httpHandlers>,在<httpHandlers>中添加
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler,URLRewriter"/>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库