【原创】程序员从SEO角度来开发网站之自己手写代码来实现URL重写
开篇
这几天我在忙着面试找工作,在网上针对性地投了好多简历,发现现在企业招聘对程序员要求已经不仅仅是单单的写代码了,可能是社会发展得比较快,人才市场竞争激烈,尤其是对计算机行业的人才需求始终得不到满足,很多公司开始明确要求程序员甚至是架构设计师之类的职位熟悉SEO的优先考虑,意思就是从此以后我们要转变思路开始从SEO角度方面来进行开发。所以,我打算利用课余时间帮博友们收集这类技术方面的东西,希望对大家以后开发有所帮助,更上一层楼,我会不定期的更新奥!废话,不罗嗦,直接切入主题!
考虑:为什么说URL重写利于SEO呢?(我的理解就这么多,懂得的朋友帮忙补充一下,谢谢)
带参数的URL由于内容可能是动态改变的,因此带参数的URL权重较低(想了解更多,自己网上找一些SEO资料学学)
其实,URL还有很多好处,比如让你的网站地址看页面来更正规、隐藏真实路径、便于记忆等,建议大家好好学
正题:如何进行URL重写?
我自己是这样写的(非常简单,仅一小段代码搞定,推荐):
首先,在你的网站根目录下新建Global.asax文件,找到Application_BeginRequest方法,(VS2005或者VS2008默认好像没有,自己添加),在该方法下添加如下代码即可:
string url = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath;//
获得要访问资源的虚拟路径,哪怕访问一个服务器上不存在的页面
Match mnc = Regex.Match(url, @"~/Page/NewsContent-(\d+)\.aspx");//将获取到的虚拟路径和自定义的路径进行匹配
if(mnc.Success)
{
string newsid = mnc.Groups[1].Value;//获取新闻id值
HttpContext.Current.RewritePath(@"~/Page/NewsContent.aspx?newsid="+newsid);//匹配成功,直接利用当前上下文的RewritePath方法,将该虚拟路径交由指定的路径处理,这样虽然页面显示“NewsContent-6.aspx”格式,但是实际上还是服务器处理的地址还是NewsContent.aspx?newsid=6,仍然不影响新闻id的传送
}
if(mnc.Success)
{
string newsid = mnc.Groups[1].Value;//获取新闻id值
HttpContext.Current.RewritePath(@"~/Page/NewsContent.aspx?newsid="+newsid);//匹配成功,直接利用当前上下文的RewritePath方法,将该虚拟路径交由指定的路径处理,这样虽然页面显示“NewsContent-6.aspx”格式,但是实际上还是服务器处理的地址还是NewsContent.aspx?newsid=6,仍然不影响新闻id的传送
}
其它的方法:(网上很多,但是我没找到更简单的)
最后,关于URL重写,在分享一个吧!呵呵,和本贴主题关系不大!
关于URL重写(Rewrite)和Redirect区别
Redirect是浏览器和服务器发生两次请求,也就是服务器命令客户端“去访问Test1.aspx”;Rewrite则是服务器内部的一个接管,在服务器内部告诉“Test1.aspx”“请帮我处理这个用户的请求”,浏览器和服务器只发生一次交互,浏览器不知道是Test1.aspx做的相应,浏览器只是向服务器发出一个请求。就像用户去上地国美买手机,缺货时的两种处理:让用户去东北旺国美(Redirect);从东北旺国美内部调货(Rewrite)。
其实它俩的区别类似于Server.Transfer和Redirect的区别,不明白的朋友上网查一下。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库