【原创】程序员从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的传送
        }
 
其它的方法:(网上很多,但是我没找到更简单的)

 

最后,关于URL重写,在分享一个吧!呵呵,和本贴主题关系不大!
 
关于URL重写(Rewrite)和Redirect区别
 
Redirect是浏览器和服务器发生两次请求,也就是服务器命令客户端“去访问Test1.aspx”;Rewrite则是服务器内部的一个接管,在服务器内部告诉“Test1.aspx”“请帮我处理这个用户的请求”,浏览器和服务器只发生一次交互,浏览器不知道是Test1.aspx做的相应,浏览器只是向服务器发出一个请求。就像用户去上地国美买手机,缺货时的两种处理:让用户去东北旺国美(Redirect);从东北旺国美内部调货(Rewrite)。
其实它俩的区别类似于Server.Transfer和Redirect的区别,不明白的朋友上网查一下。
 
 
 
 

 

 

posted @ 2013-01-21 22:09  创业男生  阅读(1247)  评论(4编辑  收藏  举报