<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_自由飞</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/53125/rss</id><updated>2011-08-01T09:39:30Z</updated><author><name>自由飞</name><uri>http://www.cnblogs.com/freeflying/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freeflying/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/53125/rss"/><entry><id>http://www.cnblogs.com/freeflying/archive/2011/07/31/2122359.html</id><title type="text">我的英语听力</title><summary type="text">磨蹭了好久，还是写一写吧，虽然我的英语水平目前也不是很好。英语对于程序员来说，无论是从待遇，还是从技术发展的角度来看，都是一个必须得过的槛。我重新开始拾起英语，就是进入程序员这一行之后，那时，我已经大学毕业5年多了。我在大学里过了6级，但和很多同龄人一样，靠的是阅读理解挣分，听力基本靠“蒙”，也就是所谓的哑巴英语，聋子英语。毕业后打算出国留学，要考雅思，所以曾经下狠“心”（但不是狠功夫，呵呵），猛补听力和口语，但效果都不好。感觉真正有所突破，还是这几年。好了，直接所我的一些看法吧，更希望大家能给我也支支招，大家互相帮助，共同进步。:-)第一、听说和读写哪个更重要。我记得我们大学的时候（1998</summary><published>2011-07-30T16:50:00Z</published><updated>2011-07-30T16:50:00Z</updated><author><name>自由飞</name><uri>http://www.cnblogs.com/freeflying/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freeflying/archive/2011/07/31/2122359.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freeflying/archive/2011/07/31/2122359.html"/><content type="html">&lt;div&gt;磨蹭了好久，还是写一写吧，虽然我的英语水平目前也不是很好。&lt;br /&gt;&lt;br /&gt;英语对于程序员来说，无论是从待遇，还是从技术发展的角度来看，都是一个必须得过的槛。我重新开始拾起英语，就是进入程序员这一行之后，那时，我已经大学毕业5年多了。&lt;br /&gt;&lt;br /&gt;我在大学里过了6级，但和很多同龄人一样，靠的是阅读理解挣分，听力基本靠&amp;#8220;蒙&amp;#8221;，也就是所谓的哑巴英语，聋子英语。毕业后打算出国留学，要考雅思，所以曾经下狠&amp;#8220;心&amp;#8221;（但不是狠功夫，呵呵），猛补听力和口语，但效果都不好。感觉真正有所突破，还是这几年。&lt;br /&gt;&lt;br /&gt;好了，直接所我的一些看法吧，更希望大家能给我也支支招，大家互相帮助，共同进步。:-)&lt;br /&gt;&lt;br /&gt;第一、听说和读写哪个更重要。我记得我们大学的时候（1998-2002年），对传统英语教育骂声一片，&amp;#8220;学了这么多年的英语，碰到一个老外，听不懂，说不出，失败呀！&amp;#8221;。我也是其中振臂疾呼的愤青之一，呵呵。不过，现在看来，其实读写比听说用的地方多得多，书籍、文档、Email和IM，即使是telephone conference，也是有文本说明的。毕竟，英语，对我们而言，是一门&amp;#8220;外语&amp;#8221;。那我们还需不需要练听力和口语呢？我个人是这样认为的。这是一种理想，一种追求，是我长久以来的梦想：和一个来自遥远异国他乡的人，面对面的交流，悦耳的语音，像流畅的旋律&amp;#8230;&amp;#8230;。当然，除此之外，如果听和说，也能促进我们的读和写；而且，让我们能谋得一个更好的职位，毕竟，口语好的求职者，还是要少很多。&lt;br /&gt;&lt;br /&gt;第二、提高英语听力的方法。读是写的基础，听是说的基础。读写我就不浪费笔墨了，而听力的提高，是我们很多人长期的噩梦。我尝试过很多方法：传统的精听泛听、逆向法、千万别学英语和天涯漏屋的&amp;#8220;悉得&amp;#8221;法（姑且如是称之吧）；试过好几种资料：大学教材，中级/高级听力，疯狂英语，电影和VOA&amp;#8230;&amp;#8230;。就这些说说我的看法吧。&lt;br /&gt;&lt;br /&gt;1、泛听的前提是精听。在这上面，我吃过大亏（可能也因人而异）。不知道你们看到过这种说法没有，&amp;#8220;没事我就把耳机带着听，走路也听，吃饭也听，睡觉也听（睡前的效果还最好），开始什么也听不懂。但我还是接着听，就这样听呀听。结果有一天，忽然，我就发现，我居然发现，英语想流水一样飘过，我居然都能听懂啦！奇迹呀！&amp;#8221;真的是奇迹，但这种奇迹从来没发生在我身上！？园子里有没有同学见证过这种奇迹？我从来没有。我支持逆向法，天涯漏屋也很明确的说了，&amp;#8220;听不懂的声音就是噪音，就是无效输入，无效输入是没有任何作用的。&amp;#8221;但我很奇怪，《千万别学英语》居然说，一个不懂任何日语的人，就收听日语电视节目，这样看呀看呀看呀看，看了几个月，就&amp;#8220;自然而然&amp;#8221;的懂日语了？而我当年，居然就信了！&lt;/div&gt;&#xD;
&lt;div&gt;&lt;br /&gt;泛听是最舒服的，舒服得完全可以做催眠特效药，是吧？多少个夜晚，我们在英语温柔的喃喃细雨中入眠？但就我的经验来看，他的作用是很微小的，尤其是当我们收听的是我们几乎无法理解的节目，如VOA Standard（甚至VOA Special，哪怕全神贯注，我们有多少人能一篇听懂100%？更何况是在走路的时候，吃饭的时候，睡觉的时候？）而且，这样泛听，还很有可能，让我们习惯于注意力涣散，抱着有一天&amp;#8220;顿悟&amp;#8221;的空想，而一旦希望破灭，莫名的烦躁沮丧&amp;#8230;&amp;#8230;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;br /&gt;对于泛听，我的理解：1、泛听意味着&amp;#8220;大量&amp;#8221;的听，要求我们听的量大；2、泛听训练我们从总体上把握材料的能力；所以，3、泛听绝对不是随随便便的&amp;#8220;乱听&amp;#8221;。所以，无论如何，泛听的结果必须是，最后，你是听懂了材料的，不要求100%，但80%，至少60%要吧？为了达到这种效果，很多老师前辈，都是说，泛听的难度不能太大，一定要大概能听懂的。&lt;/div&gt;&#xD;
&lt;div&gt;&lt;br /&gt;但我以前的水平，VOA Special都听不懂（一篇，那时只能收广播），还到哪里去找更简单的听力材料？但现在，让我泛听，随便听点VOA，不管Standard还是Specail，我就比较舒服了，能听懂，不会打瞌睡，而且还能学到点东西，一种表达法，听不懂的词，查查词典，也能有个结果，这就很爽了。但走到这一步，一定是精听的基础。逆向法绝对是精听的典型，强调&amp;#8220;听写&amp;#8221;，大家可以仔细看看。&lt;/div&gt;&#xD;
&lt;div&gt;&lt;br /&gt;这一条，概括起来说，就是，只有当你听力达到一定水平之后，泛听才能起作用。起步阶段，精听是绝对的基础。&lt;br /&gt;&lt;br /&gt;2、首先听声音。这是《千万别学英语》给我最大的帮助（另外一个是使用英英词典）。如何有效的去精听？一句话过去了，我翻来覆去的听，就是听不清，听不懂，怎么办？这里，要区分&amp;#8220;听不懂&amp;#8221;和&amp;#8220;听不清&amp;#8221;，&amp;#8220;听不懂&amp;#8221;是可以理解的，但&amp;#8220;听不清&amp;#8221;呢？&amp;#8220;听不懂&amp;#8221;，指的是意思；&amp;#8220;听不清&amp;#8221;，指的是声音。这一句话的&amp;#8220;声音&amp;#8221;，你总该听&amp;#8220;到&amp;#8221;了的吧，那就把你听&amp;#8220;到&amp;#8221;的记下来。比如，&amp;#8220;When it's very Dav mess&amp;#8221;，&amp;#8220;Dav mess&amp;#8221;什么东西，谁也不知道，但这个声音你可以先记下来，然后和原文对比，你就会回发现问题，可能是出现了弱读、连读；或者是你没有辨音正确，他实际上是&amp;nbsp; Defence，那你就知道了，你区分不了f和v，m和n等&amp;#8230;&amp;#8230;然后下意识的训练改正。&lt;br /&gt;&amp;nbsp;&lt;br /&gt;3、查词典和跟读。你听到的，不一定是正确的，比如，你认为你听到的，是sink，但实际上，是think。凡是碰到这种情况，不要轻易放过。这就算逆向法不看脚本查词典的好处。查词典，一定程度上，能逼着你努力的去听清楚，听正确。如果你这时候，看了一下脚本，你就很可能就放过了这个&amp;#8220;辨音&amp;#8221;点。随着你英语综合能力的提高，你可能就能根据上下文，自然的得出这里该是sink还是think的结论，但实际上，你还是不能区分th和s发音的区别，这就会导致你的发音出现问题。就像我是南方人，现在拼音打字都得开模糊音，分不清zh和z，这不影响我听懂普通话（尤其是在句子里），但会影响我的普通话发音。&lt;br /&gt;你发不出某个音，一定是你听不&amp;#8220;到&amp;#8221;或者分辨不出来这个音。很多人发不准v和w，th和s，其实就算他们分辨不出这些音的区别（你们可以做个试验看看）。一个有助于解决这个问题的方法，就是跟读对比。录下你的发音，和原声对比，很多时候，是能听出差别来的。&lt;br /&gt;&lt;br /&gt;4、不用强求英语思维。我们那时候，&amp;#8220;英语思维&amp;#8221;，是一个很时髦的说法。说不出，听不懂的原因，就是你不具有&amp;#8220;英语思维&amp;#8221;，你听到的每个单词，都要把它转换成汉语，然后再组合成句子，要花多长时间呀，等你完成了这些，人家都不知道说到哪里去了&amp;#8230;&amp;#8230;所以&amp;#8220;不要在头脑里翻译，直接用英语思维&amp;#8221;。我觉得，听不懂的原因是找到了的；但解决的方法&amp;#8220;不要在头脑里翻译，直接用英语思维&amp;#8221;，这个解决问题的方法，值得商榷。&lt;br /&gt;我很长一段时间都在这样尝试，但效果很差。第一，不翻译，怎么能理解？有些简单的，可能可以，Good Morning， Execuse me。但一旦复杂了，&amp;#8220;The President's announcement was not from page news in most British newspapers, but one that did cover the decision call it a gamble and retreat(d)&amp;#8221;，怎么办？怎样又才可以算&amp;#8220;英语思维&amp;#8221;？怎样才能达到&amp;#8220;英语思维&amp;#8221;？&amp;#8220;不翻译&amp;#8221;就可以了么？我觉得不是，这是一个&amp;#8220;熟能生巧&amp;#8221;的过程，在听的过程中，我们其实是无法&amp;#8220;完全翻译&amp;#8221;的，为了跟上说话者的节奏，我们自然的力图抓住说话者的意图，而忽略翻译的形式。如果你这做过翻译，你就会有这样的体会，这句话，我懂了他的意思；但让我把他翻译出来，还真得再仔细想想。但是我对这句话的理解，一定是汉语形式的，比如&amp;#8220;总统&amp;#8221;，&amp;#8220;声明&amp;#8221;，&amp;#8220;报纸&amp;#8221;等等，除非这里压根就没有，或者我根本就不知道&amp;#8220;总统&amp;#8221;这个汉语单词。这在我们的计算机专业里，会出现这种情况，比如，我们常说，team leader，谁都知道这个词的意思，但要把他翻译成汉语，可能大家都得想一想。&lt;br /&gt;对于一个土生土长的中国人，完全的英语思维，没有及其特殊的环境（比如国外生活5年10年），其实是无法形成的。汉语已经烙入我们的灵魂，但这是我们的骄傲，汉语，美丽如斯！&lt;br /&gt;相信我，你听不懂，只是你不够熟练。并不是翻译得不够熟练，而是理解得不够熟练。如果要做到熟练的翻译，在理解的基础上，还有很长很长的路要走，这条路，更陡峭，更险峻，更辉煌。&lt;br /&gt;&lt;br /&gt;第三，平和的心态。&lt;br /&gt;&lt;br /&gt;一上大学，我的英语学习目标就是，风度翩翩的和老外侃大山，没事就弄两部原声英语大片看看，像听新闻联播一样听VOA&amp;#8230;&amp;#8230;然后，我干过很多傻事，直接买了一本《红与黑》的原著抱着啃，准备一学期啃完它；大一寒假我就买了《乱世佳人》的DVD，计划一个寒假把它给&amp;#8220;搞定&amp;#8221;；抱着单词书（听说还有被词典的，那个佩服呀）一天几百个的狂背，还要按遗忘曲线复习；&amp;#8230;&amp;#8230;唯一没干过的就是跑到公交车上吼&amp;#8220;疯狂英语&amp;#8221;，可能那时候我已经感觉靠&amp;#8220;疯狂&amp;#8221;学英语不靠谱。&lt;br /&gt;&lt;br /&gt;真正促使我反思的，是我老婆，她学日语的。绝对没有任何语言天赋：语文烂得一塌糊涂（可能我要去太高，呵呵），唱歌跑调跑到天上去了。更没有语言环境，日语绝对是上大学才开始认第一个字。没有任何特殊的学习方法和学习心得，完全是跟着课堂走，磁带是教材的配套，听广播是上到日语新闻这门课，老师要求听就听听，之后就没见她听过。一定要说一个什么方法，我说是，&amp;#8220;胆小法&amp;#8221;。大四了，一节课都还不敢翘，课前认真复习，课后按时完成作业（但仅限于能交差，因为他们老师要&amp;#8220;抽查&amp;#8221;）。说白了，整个大学四年，就像读了&amp;#8220;轻松版&amp;#8221;的四年高中。结果日语一级考试成绩，分数那个高，全西南地区第7名。我当时都傻眼了，现实版的郭靖呀。&lt;br /&gt;但是她毕业后做口译，还是不行，被带了3、5个月，才慢慢上手的。&lt;br /&gt;但即使现在，她完全胜任她的工作（日常的接待、洽谈、陪同翻译等），但看日语电影，听日语新闻，不看字幕，还是不行（至少不能一遍100%的听懂）&lt;br /&gt;&lt;br /&gt;决心做程序员开始，我也同时重新拾起了我的英语。不过，这一次，没有什么宏伟的目标，没有什么眼花缭乱的学习方法，就早晚上下班（共2小时）听听VOA吧。&lt;br /&gt;老老实实的从special开始，听了大概半年；然后开始standard，一直到现在。&lt;br /&gt;先整段新闻的听几遍；然后按句子或意群，一个单词一个单词的抠；然后对照脚本，找出没有听正确的地方，最后还要再听几遍。这样下来，一段3分半钟左右的新闻，最开始1-2天能听完一篇，现在慢慢的一天能听3-4篇。&lt;br /&gt;开始是很多单词看到就认识但就没听出来，这一般都是因为这个单词自己本来就不知道该怎么发音，或者自己的发音是错的；现在基本上听不懂的单词，自己也看不懂，就不认识，偶尔运气好，能根据发音查到单词，难的还是一些虚词，像区分and和in之类的，或者是几个虚词连在一起，as of it 之类的。&lt;br /&gt;不给自己压力，必须每天听完多少多少，如果哪一天有点厌烦了，我会停下来，在地铁里傻傻的发愣，但我不会一连好几天都不听。其实地铁里也没什么事做，而且有点好奇，昨天下到手机里的新闻里究竟说的是什么呀？到后来，听英语成了一种习惯，不听就不自在。&lt;br /&gt;我曾经试过每隔多久&amp;#8220;复习&amp;#8221;一下以前听过的东西，因为我发现，过一段时间再听以前的材料，当时没听懂的，哪怕看了脚本，现在还是很可能听不懂（呵呵，比较奇怪吧？）但后来，我觉得听已经知道了意思的新闻真的没什么意思，为了不破坏我愉快的情绪，算了，过去的就过去了&amp;#8230;&amp;#8230;&lt;br /&gt;&lt;br /&gt;如果只和昨天比，前天比，上一周比，我完全不能感觉到我的进步，甚至有时觉得会有退步（因为突然发现，这一段新闻，我居然完全不知所云；而昨天那篇新闻，我两篇就听懂了大意呀？！）。但回头看看，收获是沉甸甸的。&lt;br /&gt;&lt;br /&gt;我仍然不能像听新闻联播一样听VOA，津津有味的欣赏没有字幕的英语大片。但我完全能够在一个纯英文的环境中，胜任我的工作，完成老外组织的纯英语的培训，参加各种全球客户的电话会议，中午吃饭时和老外你一言我一句的瞎掰，结结巴巴，但仍然谈笑风生。&lt;br /&gt;&lt;br /&gt;我曾经复习4个月考过了司法资格考试，3个月考过软件设计师，但对于英语，我终于明白，一步一个脚印，持之以恒的坚持，是通向成功的唯一捷径。所以，在收获英语的同时，也收获了一份淡定从容。&lt;/div&gt;&lt;img src="http://www.cnblogs.com/freeflying/aggbug/2122359.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/freeflying/archive/2011/07/31/2122359.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/freeflying/archive/2011/01/23/1942359.html</id><title type="text">Orchard源代码研究</title><summary type="text">Orchard是一个基于.NET平台的开源CMS（Comment Management System）。园子里周金根同学有过介绍。决定研究Orchard主要基于以下几个原因：1. 技术很新。最近发布的版本居然都使用的是Asp.net MVC Razor!2. 大量使用的开源技术，如NHibernate, Autofac等。3. 架构很新颖（至少对于我来说），大量使用的IoC之类的让我彻底的云里雾里的了。4. 活跃的社区支持，练习英文的好机会。如果你和我一样，一起来看一看吧。再次呼吁，在博客园开一个Orchard栏目。支持的顶起呀！官方网站：http://www.orchardproject.n</summary><published>2011-01-23T02:59:00Z</published><updated>2011-01-23T02:59:00Z</updated><author><name>自由飞</name><uri>http://www.cnblogs.com/freeflying/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freeflying/archive/2011/01/23/1942359.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freeflying/archive/2011/01/23/1942359.html"/><content type="html">&lt;p&gt;Orchard是一个基于.NET平台的开源CMS（Comment Management System）。园子里周金根同学有过&lt;a href="http://www.cnblogs.com/zhoujg/archive/2011/01/19/1939453.html"&gt;介绍。&lt;/a&gt;&lt;/p&gt;&lt;p&gt;决定研究Orchard主要基于以下几个原因：&lt;/p&gt;&lt;p&gt;1. 技术很新。最近发布的版本居然都使用的是Asp.net MVC Razor!&lt;br /&gt;2. 大量使用的开源技术，如NHibernate, Autofac等。&lt;br /&gt;3. 架构很新颖（至少对于我来说），大量使用的IoC之类的让我彻底的云里雾里的了。&lt;br /&gt;4. 活跃的社区支持，练习英文的好机会。&lt;br /&gt;&lt;br /&gt;如果你和我一样，一起来看一看吧。再次呼吁，在博客园开一个Orchard栏目。支持的顶起呀！&lt;br /&gt;&lt;br /&gt;官方网站：&lt;a href="http://www.orchardproject.net/"&gt;http://www.orchardproject.net/&lt;/a&gt;&lt;br /&gt;社区支持：&lt;a href="http://orchard.codeplex.com/discussions"&gt;http://orchard.codeplex.com/discussions&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/freeflying/aggbug/1942359.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/freeflying/archive/2011/01/23/1942359.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/freeflying/archive/2010/03/12/1684762.html</id><title type="text">ASP.NET的SEO：SEO Hack --- Html注入和Nofollow</title><summary type="text">ASP.NET的SEO：目录黑帽（black hat）SEO主要是指采取&amp;#8220;不怎么道德&amp;#8221;（暂时就这么形容吧！）的方式进行搜索引擎优化。1. 注入攻击，包括Sql注入和Html注入。我经常能看到对Sql注入防范的谈论，但对于Html注入，很多人并没有引起足够的重视。为了展示Html注入的效果，我们模仿了一个常见的留言本功能。首先，在页面声明中添加两个属性设置EnableEven...</summary><published>2010-03-12T13:30:00Z</published><updated>2010-03-12T13:30:00Z</updated><author><name>自由飞</name><uri>http://www.cnblogs.com/freeflying/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freeflying/archive/2010/03/12/1684762.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freeflying/archive/2010/03/12/1684762.html"/><content type="html">&lt;p&gt;&lt;a target="_blank" id="ctl04_TitleUrl" href="http://www.cnblogs.com/freeflying/archive/2010/02/19/1669484.html"&gt;ASP.NET的SEO：目录&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;黑帽（black hat）SEO主要是指采取&amp;#8220;不怎么道德&amp;#8221;（暂时就这么形容吧！）的方式进行搜索引擎优化。&lt;/p&gt;&lt;br /&gt;1. 注入攻击，包括Sql注入和Html注入。我经常能看到对Sql注入防范的谈论，但对于Html注入，很多人并没有引起足够的重视。为了展示Html注入的效果，我们模仿了一个常见的留言本功能。&lt;br /&gt;首先，在页面声明中添加两个属性设置EnableEventValidation="false" ValidateRequest="false" ，这很关键，读者可以试一下如果不这样设置会有什么效果。&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;@&amp;nbsp;Page&amp;nbsp;Language&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;C#&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;nbsp;AutoEventWireup&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;true&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;CodeFile&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;Default.aspx.cs&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;nbsp;Inherits&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;_Default&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;nbsp;EnableEventValidation&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;false&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;nbsp;ValidateRequest&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;false&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;%&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;然后，前台页面和后台代码段分别如下：&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('ca23d6fc-dab9-4ba5-a01d-8776b07936d0')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_4f92fe14-8d2c-4571-869f-7fdd07aca329" onclick="cnblogs_code_hide('4f92fe14-8d2c-4571-869f-7fdd07aca329',event)" style="display: none;"&gt;&lt;div id="cnblogs_code_open_4f92fe14-8d2c-4571-869f-7fdd07aca329" &gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Text.RegularExpressions;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;NoFollow&amp;nbsp;contains&amp;nbsp;the&amp;nbsp;functionality&amp;nbsp;to&amp;nbsp;add&amp;nbsp;rel=nofollow&amp;nbsp;to&amp;nbsp;unstusted&amp;nbsp;links&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;NoFollow&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;the&amp;nbsp;white&amp;nbsp;list&amp;nbsp;of&amp;nbsp;domains&amp;nbsp;(in&amp;nbsp;lower&amp;nbsp;case)&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[]&amp;nbsp;whitelist&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;seoasp&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;www.seoegghead.com&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;www.cristiandarie.ro&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;};&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;finds&amp;nbsp;all&amp;nbsp;the&amp;nbsp;links&amp;nbsp;in&amp;nbsp;the&amp;nbsp;input&amp;nbsp;string&amp;nbsp;and&amp;nbsp;processes&amp;nbsp;them&amp;nbsp;using&amp;nbsp;fixLink&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FixLinks(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;input)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;define&amp;nbsp;the&amp;nbsp;match&amp;nbsp;evaluator&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MatchEvaluator&amp;nbsp;fixThisLink&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;MatchEvaluator(NoFollow.fixLink);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;fix&amp;nbsp;the&amp;nbsp;links&amp;nbsp;in&amp;nbsp;the&amp;nbsp;input&amp;nbsp;string&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;fixedInput&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Regex.Replace(input,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&amp;lt;a.*?&amp;gt;)&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fixThisLink,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RegexOptions.IgnoreCase);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;return&amp;nbsp;the&amp;nbsp;"fixed"&amp;nbsp;input&amp;nbsp;string&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;fixedInput;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;receives&amp;nbsp;a&amp;nbsp;Regex&amp;nbsp;match&amp;nbsp;that&amp;nbsp;contains&amp;nbsp;a&amp;nbsp;link&amp;nbsp;such&amp;nbsp;as&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;lt;a&amp;nbsp;href="&lt;/span&gt;&lt;span style="color: #008000; text-decoration: underline;"&gt;http://too.much.spam/&lt;/span&gt;&lt;span style="color: #008000;"&gt;"&amp;gt;&amp;nbsp;and&amp;nbsp;adds&amp;nbsp;ref=nofollow&amp;nbsp;if&amp;nbsp;needed&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;fixLink(Match&amp;nbsp;linkMatch)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;retrieve&amp;nbsp;the&amp;nbsp;link&amp;nbsp;from&amp;nbsp;the&amp;nbsp;received&amp;nbsp;Match&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;singleLink&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;linkMatch.Value;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;if&amp;nbsp;the&amp;nbsp;link&amp;nbsp;already&amp;nbsp;has&amp;nbsp;rel=nofollow,&amp;nbsp;return&amp;nbsp;it&amp;nbsp;back&amp;nbsp;as&amp;nbsp;it&amp;nbsp;is&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(Regex.IsMatch(singleLink,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;rel\s*?=\s*?['""]?.*?nofollow.*?['""]?&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RegexOptions.IgnoreCase))&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;singleLink;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;use&amp;nbsp;a&amp;nbsp;named&amp;nbsp;group&amp;nbsp;to&amp;nbsp;extract&amp;nbsp;the&amp;nbsp;URL&amp;nbsp;from&amp;nbsp;the&amp;nbsp;link&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Match&amp;nbsp;m&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Regex.Match(singleLink,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;href\s*?=\s*?['""]?(?&amp;lt;url&amp;gt;[^'""]*)['""]?&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RegexOptions.IgnoreCase);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;url&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;m.Groups[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;url&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;].Value;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;if&amp;nbsp;URL&amp;nbsp;doesn't&amp;nbsp;contain&amp;nbsp;http:&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;,&amp;nbsp;assume&amp;nbsp;it's&amp;nbsp;a&amp;nbsp;local&amp;nbsp;link&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;url.Contains(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;http://&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;singleLink;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;extract&amp;nbsp;the&amp;nbsp;host&amp;nbsp;name&amp;nbsp;(such&amp;nbsp;as&amp;nbsp;www.cristiandarie.ro)&amp;nbsp;from&amp;nbsp;the&amp;nbsp;URL&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Uri&amp;nbsp;uri&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Uri(url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;host&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;uri.Host.ToLower();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;if&amp;nbsp;the&amp;nbsp;host&amp;nbsp;is&amp;nbsp;in&amp;nbsp;the&amp;nbsp;whitelist,&amp;nbsp;don't&amp;nbsp;alter&amp;nbsp;it&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(Array.IndexOf(whitelist,&amp;nbsp;host)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;singleLink;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;if&amp;nbsp;the&amp;nbsp;URL&amp;nbsp;already&amp;nbsp;has&amp;nbsp;a&amp;nbsp;rel&amp;nbsp;attribute,&amp;nbsp;change&amp;nbsp;its&amp;nbsp;value&amp;nbsp;to&amp;nbsp;nofollow&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;newLink&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Regex.Replace(singleLink,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;(?&amp;lt;a&amp;gt;rel\s*=\s*(?&amp;lt;b&amp;gt;['""]?))((?&amp;lt;c&amp;gt;[^'""\s]*|[^'""]*))(?&amp;lt;d&amp;gt;['""]?)?&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;${a}nofollow${d}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RegexOptions.IgnoreCase);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;if&amp;nbsp;the&amp;nbsp;string&amp;nbsp;had&amp;nbsp;a&amp;nbsp;rel&amp;nbsp;attribute&amp;nbsp;that&amp;nbsp;we&amp;nbsp;changed,&amp;nbsp;return&amp;nbsp;the&amp;nbsp;new&amp;nbsp;link&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(newLink&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;singleLink)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;newLink;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;if&amp;nbsp;we&amp;nbsp;reached&amp;nbsp;this&amp;nbsp;point,&amp;nbsp;we&amp;nbsp;need&amp;nbsp;to&amp;nbsp;add&amp;nbsp;rel=nofollow&amp;nbsp;to&amp;nbsp;our&amp;nbsp;link&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;newLink&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Regex.Replace(singleLink,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;a&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;a&amp;nbsp;rel=""nofollow""&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RegexOptions.IgnoreCase);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;newLink;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/freeflying/aggbug/1684762.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/freeflying/archive/2010/03/12/1684762.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/freeflying/archive/2010/03/02/1676728.html</id><title type="text">Reset按钮在回发之后就不起作用</title><summary type="text">今天突然发现Reset按钮在回发之后就不起作用了，清不掉TextBox里的值。 &amp;lt;input type="reset" value="reset" /&amp;gt;网上搜了一下，只有问题，没有答案。csdn上一个老帖子里说和ViewState之类的有关，把我还搞得晕乎乎的，想想reset按钮怎么也就是一个客户端的控件，和服务器端根本不搭界，怎么可能呢？ViewState怎么也得到了服务器端才开始解...</summary><published>2010-03-02T10:49:00Z</published><updated>2010-03-02T10:49:00Z</updated><author><name>自由飞</name><uri>http://www.cnblogs.com/freeflying/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freeflying/archive/2010/03/02/1676728.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freeflying/archive/2010/03/02/1676728.html"/><content type="html">今天突然发现Reset按钮在回发之后就不起作用了，清不掉TextBox里的值。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="reset" value="reset" /&amp;gt;&lt;br /&gt;&lt;br /&gt;网上搜了一下，只有问题，没有答案。csdn上一个老帖子里说和ViewState之类的有关，把我还搞得晕乎乎的，想想reset按钮怎么也就是一个客户端的控件，和服务器端根本不搭界，怎么可能呢？ViewState怎么也得到了服务器端才开始解析呀。&lt;br /&gt;&lt;br /&gt;结构后来仔细一对比TextBox生成的Html代码：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input name="txt" type="text" id="txt" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input name="txt" type="text" value="dfsa" id="txt" /&amp;gt;&lt;br /&gt;&lt;br /&gt;原来页面postback，再render之后，value值都被写死了，还怎么reset？&lt;br /&gt;reset只能清除掉用户输入的内容啊！～～～&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/freeflying/aggbug/1676728.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/freeflying/archive/2010/03/02/1676728.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/freeflying/archive/2010/02/26/1674557.html</id><title type="text">ASP.NET的SEO：Linq to XML---网站地图和RSS Feed</title><summary type="text">本系列目录网站地图的作用是让搜索引擎尽快的，更多的收录网站的各个网页。 这里我们首先要明白一个基本的原理，搜索引擎的爬行方式。整个互联网就像一张纵横交错的&amp;#8220;网&amp;#8221;：网的各个节点就是各个网页，而各个网页之间通过url相互连接。蜘蛛可以从一个网页出发，通过该网页上的url，爬到另一个网页；再通过另一个网页上的url，再爬到更多的网页&amp;#8230;&amp;#8230;，以此类推。但如果是...</summary><published>2010-02-26T13:15:00Z</published><updated>2010-02-26T13:15:00Z</updated><author><name>自由飞</name><uri>http://www.cnblogs.com/freeflying/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freeflying/archive/2010/02/26/1674557.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freeflying/archive/2010/02/26/1674557.html"/><content type="html">&lt;a target="_blank" href="http://www.cnblogs.com/freeflying/archive/2010/02/19/1669484.html"&gt;本系列目录&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;网站地图的作用是让搜索引擎尽快的，更多的收录网站的各个网页。&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;这里我们首先要明白一个基本的原理，搜索引擎的爬行方式。整个互联网就像一张纵横交错的&amp;#8220;网&amp;#8221;：网的各个节点就是各个网页，而各个网页之间通过url相互连接。蜘蛛可以从一个网页出发，通过该网页上的url，爬到另一个网页；再通过另一个网页上的url，再爬到更多的网页&amp;#8230;&amp;#8230;，以此类推。但如果是一个新发布的网站，可能就没有其他url指向它，那么它就永远不会被&amp;#8220;爬到&amp;#8221;（收录）。为了解决这个问题，新站可以自己主动向搜索引擎提交url，申请蜘蛛前来抓取（Google申请网址：），但申请时一般只会提交一个主页的url。&lt;br /&gt;&lt;br /&gt;为了让所有的url（尤其是动态生成的）都能被蜘蛛快捷便利的检索到，我们就需要提供一个全面完整、架构清晰和更新及时的网站地图。（&lt;a target="_blank" title="网站地图的更多信息" href="http://www.googlechinawebmaster.com/2008/02/sitemap.html"&gt;网站地图的更多信息&lt;/a&gt;）。&lt;br /&gt;&lt;br /&gt;&lt;p&gt;和处理重复内容的robots.txt文件，我们通过.ashx文件来生成一个基于sitemaps.org的xml格式的网站地图。网站地图生成之后，我们就可以向Google等搜索引擎提交。大量的文章证实，提交网站地图将极大的提高网站的收录速度和深度。其他几乎所有的SEO方法，都有可能效果难以证实、失效甚至带来副作用，但提交网站地图除外！&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Linq to XML为我们带来了近乎完美的操作体验。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('6de58865-4dcd-457a-a7ee-1104d8efdf9f')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_9c1d305a-7b3f-48de-b046-5b0766f8a011" onclick="cnblogs_code_hide('9c1d305a-7b3f-48de-b046-5b0766f8a011',event)" style="display: none;"&gt;&lt;div id="cnblogs_code_open_9c1d305a-7b3f-48de-b046-5b0766f8a011" &gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Data;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Configuration;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Linq;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web.Security;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web.UI;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web.UI.HtmlControls;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web.UI.WebControls;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web.UI.WebControls.WebParts;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Xml.Linq;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Web.UI.MobileControls;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Collections.Generic;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Summary&amp;nbsp;description&amp;nbsp;for&amp;nbsp;Articles&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Articles&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Articles()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;TODO:&amp;nbsp;Add&amp;nbsp;constructor&amp;nbsp;logic&amp;nbsp;here&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Article&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;GetArticles()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;List&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Article&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Article(&lt;/span&gt;&lt;span style="color: #800080;"&gt;234&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;blog&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;DateTime.Now.AddDays(&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;23&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&amp;nbsp;Freq.none,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;0.8&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp.net&amp;nbsp;seo&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;articles&amp;nbsp;about&amp;nbsp;SEO&amp;nbsp;in&amp;nbsp;asp.net&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Article(&lt;/span&gt;&lt;span style="color: #800080;"&gt;267&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;blog&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;DateTime.Now.AddDays(&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;245&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&amp;nbsp;Freq.daily,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;0.6&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ado.net&amp;nbsp;pro&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;about&amp;nbsp;the&amp;nbsp;dataset&amp;nbsp;usage&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Article(&lt;/span&gt;&lt;span style="color: #800080;"&gt;653&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;news&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;DateTime.Now.AddDays(&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;45&lt;/span&gt;&lt;span style="color: #000000;"&gt;),&amp;nbsp;Freq.daily,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;CLR&amp;nbsp;via&amp;nbsp;C#&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;notebook&amp;nbsp;about&amp;nbsp;this&amp;nbsp;book&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Article&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ID;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Catelog;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;DateTime&amp;nbsp;LastMod;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Weight;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Freq&amp;nbsp;Frequency;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Title;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Description;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Article(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;id,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;catelog,&amp;nbsp;DateTime&amp;nbsp;lastMod,&amp;nbsp;Freq&amp;nbsp;frequency,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;weight,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;title,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;description)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ID&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;id;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Catelog&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;catelog;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastMod&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;lastMod;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Weight&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;weight;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Frequency&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;frequency;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Title&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;title;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Description&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;description;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;enum&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Freq&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;none&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;daily&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;weekly&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/freeflying/aggbug/1674557.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/freeflying/archive/2010/02/26/1674557.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/freeflying/archive/2010/02/24/1672308.html</id><title type="text">ASP.NET的SEO：HTTP报头状态码---内容重定向</title><summary type="text">本系列目录我们经常说&amp;#8220;404错误&amp;#8221;，你知道他指的是什么意思么？404其实是Http报头所包含的一个&amp;#8220;状态码&amp;#8221;，表明该Http请求失败。那么除此之外，还有哪些常用的状态码呢？这些状态码和SEO又有什么关系呢？每次当用户代理（可以理解为就是IE和Firefox）向Web站点请求一个URL地址，服务器都会给予回复，回复内容包括两部分：HTTP报头，和被请求...</summary><published>2010-02-23T16:56:00Z</published><updated>2010-02-23T16:56:00Z</updated><author><name>自由飞</name><uri>http://www.cnblogs.com/freeflying/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freeflying/archive/2010/02/24/1672308.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freeflying/archive/2010/02/24/1672308.html"/><content type="html">&lt;p&gt;&lt;a target="_blank" href="http://www.cnblogs.com/freeflying/archive/2010/02/19/1669484.html"&gt;本系列目录&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;我们经常说&amp;#8220;404错误&amp;#8221;，你知道他指的是什么意思么？&lt;/p&gt;&lt;p&gt;404其实是Http报头所包含的一个&amp;#8220;状态码&amp;#8221;，表明该Http请求失败。那么除此之外，还有哪些常用的状态码呢？这些状态码和SEO又有什么关系呢？&lt;/p&gt;&lt;br /&gt;每次当用户代理（可以理解为就是IE和Firefox）向Web站点请求一个URL地址，服务器都会给予回复，回复内容包括两部分：HTTP报头，和被请求的内容。但仅从浏览器上我们通常只能看到内容而看不到报头信息。所以，我们需要通过一些浏览器插件来观察他们。就我个人而言，IE我用WebDeveloper;FireFox我用Fiddler。有兴趣的朋友可以在网上自行下载，两个都是相当流行的。&lt;br /&gt;&lt;br /&gt;对SEO而言，我们需要了解的状态代码有：&lt;br /&gt;重定向：301和302&lt;br /&gt;被删除：404&lt;br /&gt;服务器错误：500&lt;br /&gt;&lt;br /&gt;我们依次讲解，首先将302。302在asp.net中有一个很常见的原型：Response.Redirect()，请看代码：&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Button1_Click(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Redirect(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;~/target.aspx&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Server.Transfer("~/&lt;span style="color: #800000;"&gt;target&lt;/span&gt;.aspx");&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;source.aspx页面上一个Button，Click事件中代码为Response.Redirect（~/target.aspx），点击source.aspx页面Button，查看该页面对应的状态码，结果就是302。（&lt;span style="background-color: #ffff00;"&gt;如下图，我使用的是Web Development，不知道为什么enable log之后，就无法再转到target页面了？各位同学知道原因的请指点一二）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/freeflying/response_redirect.jpg" height="410" width="598" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;但可以查看详细信息，可以发现302的影响，response指明了要转向的url。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/freeflying/response_redirect_detail.jpg" height="238" width="391" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;客户端/服务器之间往返的过程其实是这样的：&lt;/p&gt;1. 点击Button，产生回发，回发的目标页面仍然是source.aspx，所以请求仍由source.aspx页面进行处理，这样才能进入source.aspx页面的Click事件；&lt;br /&gt;2. Click事件中，Response.Redirect（~/target.aspx）所作的事情实际上就是：&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;2.1 将回复中Http报头的状态码改成302；&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;2.1 指明302指向的页面就是target.aspx；&lt;br /&gt;3. 浏览器（用户代理）收到回复的报头信息后，&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;3.1 将URL地址栏的地址改成target.aspx；&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;3.2 向target.aspx发出请求&lt;br /&gt;&lt;br /&gt;和Response.Redirect()同样著名的是Server.Transfer()。但使用Server.Transfer,你会发现，页面对应的状态码是200，且地址栏的url并不会发生改变，仍然是source.aspx！这是因为Server.Transfer是完全在服务器端进行跳转的。所以一种很流行但我觉得不那么正确的说法就是：应当使用Server.Transfer()而不是Response.Redirect()来提高性能。因为在得到Server.Transfer()性能提升的同时，你应该权衡：性能的提高，和由此产生的代价。很难直接给出一个答案，这需要依靠具体的情景来做判断。但我倾向于尽量不使用Server.Transfer()，因为：1. 性能提升不大，节约的其实就是报头信息的往返；2. 清晰的URL无论对于终端用户，还是开发调试，都有很重要的作用。&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;好了，理解了302，301也就好办了。302意味着重定向是暂时的，而301则是永久的重定向。&lt;br /&gt;就SEO而言，为了延续&lt;a target="_blank" title="链接价值" href="http://www.cnblogs.com/freeflying/archive/2010/01/25/1656326.html"&gt;链接价值&lt;/a&gt;和&lt;a target="_blank" href="http://www.cnblogs.com/freeflying/archive/2010/02/21/1670758.html" title="ASP.NET的SEO：使用.ashx文件&amp;#8212;&amp;#8212;重复内容"&gt;排除重复内容&lt;/a&gt; ，我们在以下几种情况下都可能会用到301：&lt;br /&gt;1. 域名更换；&lt;br /&gt;2. 多个域名间映射；如www.freeflying.com和www.freeflying.cn，两个域名其实指向的是同一个网站，这就会造成大量的重复内容，对网站的排名不利。&lt;br /&gt;3. 清除默认索引页的重复问题：比如我们输入www.freeflying.com/article/时，如果在IIS里进行了设定，将指向www.freeflying.com/article/Default.aspx&lt;br /&gt;4. 其他的&amp;#8220;不同域名相同内容&amp;#8221;的重复问题，典型的就是URL重写后，www.freeflying.com/article/321.html和www.freeflying.com/article.aspx?id=321指向的其实都是同一个网页内容。&lt;br /&gt;&lt;br /&gt;对于404，最直观的理解就是页面不存在。如果网站是纯静态的，这很好理解；但当网站做成动态之后，如www.freeflying.com/article/321.html（映射为www.freeflying.com/article.aspx?id=321），虽然id=321的文章已经被删除了，或者根本不存在，但article.aspx这个页面始终是存在的，所以HTTP报头的状态码不会是404，而是200，表示请求成功。&lt;br /&gt;我们假设一个网站有id=321/342/6739&amp;#8230;&amp;#8230;的文章都被删除了，但蜘蛛并不知道，它仍然会进行抓取，结果它发现，这些不同的URL对应的居然全是同一个页面。它就会将其当做重复页面进行处理。&lt;br /&gt;&lt;br /&gt;500意味着程序内部出现异常，比如3/0，代码如下：&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Button1_Click(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;i,&amp;nbsp;j;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;8&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Label1.Text&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;j).ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;如果搜索引擎接到一个500的状态码时，搜索引擎会理解程序只是出现了暂时性的错误，它会在之后继续抓取，查看问题是否已经解决，这并不会给网站带来太大的问题&amp;#8212;&amp;#8212;只要你能够尽快恢复。但是，Asp.net自带的个custom error的web.config配置，会让我们在不经意间&amp;#8220;失误&amp;#8221;。理由和上面讲到的404变200类似，当转向自定义的error.aspx之后，蜘蛛得到的是成功链接error.aspx的200代码，所以蜘蛛会以为报错的originpage.aspx正常的显示内容就是error.aspx的内容。不同url参数的originpage.aspx会被蜘蛛认为是不同的url，所以蜘蛛会认为这些所有的url都重复了&amp;#8212;&amp;#8212;后果是很严重的。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;好了，认识到问题的严重性之后，我们来看解决问题的办法，太简单了，呵呵&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Page_Load(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果你希望搜索引擎知道这个url将不再使用&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.StatusCode&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;404&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果你希望告诉搜索引擎这个url只是出现了暂时的故障&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.StatusCode&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;500&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果你想永久重定向该页面&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.StatusCode&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;301&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.RedirectLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;\website1\target.aspx&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;img src="http://www.cnblogs.com/freeflying/aggbug/1672308.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/freeflying/archive/2010/02/24/1672308.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/freeflying/archive/2010/02/21/1670758.html</id><title type="text">ASP.NET的SEO：使用.ashx文件——排除重复内容</title><summary type="text">本系列目录 不同的链接指向的页面如果具有大量相同的内容，这种现象就会被称为&amp;#8220;重复内容&amp;#8221;，如果一个网站的重复内容很多，搜索引擎就会认为这个网站的价值不高。所以我们应尽量避免各种重复内容。动态网站的重复内容常常是由URL参数引起的，而URL重写会恶化这一现象（比较耐人寻味哟，呵呵）。因为如果使用的是原始的URL参数的话，搜索引擎可能会进行适当的判断，而得知重复内容是由URL参数...</summary><published>2010-02-21T14:22:00Z</published><updated>2010-02-21T14:22:00Z</updated><author><name>自由飞</name><uri>http://www.cnblogs.com/freeflying/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freeflying/archive/2010/02/21/1670758.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freeflying/archive/2010/02/21/1670758.html"/><content type="html">&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://www.cnblogs.com/freeflying/archive/2010/02/19/1669484.html"&gt;本系列目录&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;不同的链接指向的页面如果具有大量相同的内容，这种现象就会被称为&amp;#8220;重复内容&amp;#8221;，如果一个网站的重复内容很多，搜索引擎就会认为这个网站的价值不高。所以我们应尽量避免各种重复内容。&lt;/p&gt;动态网站的重复内容常常是由URL参数引起的，而&lt;a target="_blank" href="http://www.cnblogs.com/freeflying/archive/2010/02/14/1668208.html" title="URL重写"&gt;URL重写&lt;/a&gt;会恶化这一现象（比较耐人寻味哟，呵呵）。因为如果使用的是原始的URL参数的话，搜索引擎可能会进行适当的判断，而得知重复内容是由URL参数引起的，自动的进行相应的处理；而URL重写会掩盖URL参数，反而使得搜索引擎无法识别URL参数。比如：&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('7a95cd1a-3ccb-49e9-bc01-883fd5d18a5c')"&gt;&lt;div id="cnblogs_code_open_7a95cd1a-3ccb-49e9-bc01-883fd5d18a5c"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;原始的URL:&lt;br /&gt;http://www.freeflying.com/articles.aspx?id=231&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;amp;catelog&lt;/span&gt;&lt;span style="color: #000000;"&gt;=blog&lt;br /&gt;http://www.freeflying.com/articles.aspx?id=231&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;amp;catelog&lt;/span&gt;&lt;span style="color: #000000;"&gt;=news&lt;br /&gt;&lt;br /&gt;经过URL重写过后的URL：&lt;br /&gt;http://www.freeflying.com/blog/231.html&lt;br /&gt;http://www.freeflying.com/news/231.html&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;这些URL所指向的页面内容其实是一样的，都是id=231的那篇文章，但这篇文章被blog和news两个栏目所引用，出于各种原因的考虑，我们最终的URL还是如上所示。&lt;br /&gt;处理的办法有两种，一种是利用机器人（robot）协议&amp;#8220;排除&amp;#8221;其中一个，另一种是通过301将其中一个URL永久重定向另一个URL。&lt;br /&gt;&lt;br /&gt;今天我们先讲robot协议。简单的讲，robot指的就是搜索引擎，针对Google，我们又将其称之为&amp;#8220;蜘蛛（spider）&amp;#8221;。蜘蛛是很有礼貌的，在抓取你的网页内容的之前，会首先征求你的意见。而你和robot之前就基于robot协议进行沟通。具体到实现，有两种方式：&lt;br /&gt;&lt;br /&gt;&lt;p&gt;1. 将一个的robots.txt文本添加到网站根目录下，如：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;#static&amp;nbsp;content,&amp;nbsp;forbid&amp;nbsp;all&amp;nbsp;the&amp;nbsp;pages&amp;nbsp;under&amp;nbsp;the&amp;nbsp;"Admin"&amp;nbsp;folder&lt;br /&gt;User-agent:&amp;nbsp;*&lt;br /&gt;Disallow:&amp;nbsp;/Admin&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;#行表示注释；&lt;br /&gt;User-agent指搜索引擎，*表示针对所有搜索引擎，也可以指定具体的搜索引擎，如User-agent: googlebot；&lt;br /&gt;Disallow指定不允许访问的目录或页面，注意：1. 此文本是大小写敏感的；2.必须以&amp;#8220;\&amp;#8221;开头，表示网站根目录； &lt;br /&gt;和本系列的宗旨一样，我们着重谈ASP.NET技术。所以更多的robots.txt文本的注意事项，请查看&lt;a target="_blank" href="http://www.googlechinawebmaster.com/2008/03/robotstxt.html"&gt;http://www.googlechinawebmaster.com/2008/03/robotstxt.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;但我们怎么动态的生成这个文件呢（这种需求其实蛮多的）？可能我们马上想到的就是I/O操作，在根目录下写一个txt文件&amp;#8230;&amp;#8230;，但其实还可以有一种方法：使用一般处理程序（.ashx文件），代码如下：&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('566d5438-f44c-4121-b6ed-33a9d9db072b')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  id="code_img_opened_1cd04dda-8fc2-4bce-992c-ce922dbeb726" onclick="cnblogs_code_hide('1cd04dda-8fc2-4bce-992c-ce922dbeb726',event)" style="display: none;"&gt;&lt;div id="cnblogs_code_open_1cd04dda-8fc2-4bce-992c-ce922dbeb726" &gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Page_Load(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HtmlMeta&amp;nbsp;meta&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HtmlMeta();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;meta.Name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;robots&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;meta.Content&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;noindex,nofollow&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Header.Controls.Add(meta);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;meta中还可以指定description、keyword等，其技术实现是相同的。&lt;br /&gt;&lt;br /&gt;那么，两种方式我们如何选择呢？我的一些建议：&lt;br /&gt;1. 尽量使用robots.txt，这既能降低网站的负载（虽然很小，呵呵），因为蜘蛛查看了robots.txt文件之后，就不会再请求被屏蔽的相关页面了；而如果使用meta方式，蜘蛛必须先请求该页面，再做出不检索的判断，这时Http请求已经发出了，服务器端的资源就已经浪费了；另外，如果过多的meta屏蔽，也会使蜘蛛对网站产生不佳的印象，减少或放弃该网站的检索收录；&lt;br /&gt;2. robots.txt文本的匹配时从左到右的，这里就没什么正则匹配了！所以有的时候，我们不得不使用meta方式了。如我们文章开始的URL：&lt;br /&gt;http://www.freeflying.com/blog/231.html&lt;br /&gt;http://www.freeflying.com/news/231.html&lt;br /&gt;&lt;br /&gt;最后，再讲一些注意事项：&lt;br /&gt;1. 不要在所有页面使用相同的Keyword和Discription，这是我们很容易犯的一个错误，虽然articles.aspx是一个页面，但加上url参数后，就变成了成千上万个页面，如果你在页面上写死了Keyword和Discription，那将使这成千上万个页面都是一样的Keyword和Discription！&lt;br /&gt;2. 尽量避免使用基于URL的SessionID。ASP.NET在客户端禁用cookie的情况下，可以设置使用基于URL的SessionID，效果类似：&lt;br /&gt;http://www.freeflying.com/(S(c3hvob55wirrndfd564))/articles.aspx&lt;img src="http://www.cnblogs.com/freeflying/aggbug/1670758.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/freeflying/archive/2010/02/21/1670758.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/freeflying/archive/2010/02/19/1669484.html</id><title type="text">ASP.NET的SEO：目录</title><summary type="text">ASP.NET的SEO：基础知识ASP.NET的SEO：Global.asax和HttpModule中的RewritePath()方法&amp;#8212;&amp;#8212;友好的URLASP.NET的SEO：正则表达式ASP.NET的SEO：服务器控件背后&amp;#8212;&amp;#8212;SEO友好的Html和JavaScriptASP.NET的SEO：使用.ashx文件&amp;#8212;&amp;#8212;排除重复内容A...</summary><published>2010-02-19T12:29:00Z</published><updated>2010-02-19T12:29:00Z</updated><author><name>自由飞</name><uri>http://www.cnblogs.com/freeflying/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freeflying/archive/2010/02/19/1669484.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freeflying/archive/2010/02/19/1669484.html"/><content type="html">&lt;a target="_blank" href="http://www.cnblogs.com/freeflying/archive/2010/01/25/1656326.html"&gt;ASP.NET的SEO：基础知识&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;a target="_blank" id="homepage1_HomePageDays_DaysList_ctl01_DayItem_DayList_ctl00_TitleUrl" href="http://www.cnblogs.com/freeflying/archive/2010/02/14/1668208.html"&gt;ASP.NET的SEO：Global.asax和HttpModule中的RewritePath()方法&amp;#8212;&amp;#8212;友好的URL&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ASP.NET的SEO：正则表达式&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" title="ASP.NET的SEO: 服务器控件背后&amp;#8212;&amp;#8212;SEO友好的Html和JavaScript" href="http://www.cnblogs.com/freeflying/archive/2010/02/19/1669469.html"&gt;ASP.NET的SEO：服务器控件背后&amp;#8212;&amp;#8212;SEO友好的Html和JavaScript&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://www.cnblogs.com/freeflying/archive/2010/02/21/1670758.html" title="ASP.NET的SEO：使用.ashx文件&amp;#8212;&amp;#8212;重复内容"&gt;ASP.NET的SEO：使用.ashx文件&amp;#8212;&amp;#8212;排除重复内容&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://www.cnblogs.com/freeflying/archive/2010/02/21/1670758.html"&gt;ASP.NET的SEO：HTTP报头状态码---内容重定向&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" id="ctl04_TitleUrl" href="http://www.cnblogs.com/freeflying/archive/2010/02/26/1674557.html"&gt;ASP.NET的SEO：Linq to XML---网站地图和RSS Feed&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" title="ASP.NET的SEO：SEO Hack --- Html注入和Nofollow" href="http://www.cnblogs.com/freeflying/archive/2010/03/12/1684762.html"&gt;ASP.NET的SEO：SEO Hack&lt;a target="_blank" id="homepage1_HomePageDays_DaysList_ctl00_DayItem_DayList_ctl00_TitleUrl" href="http://www.cnblogs.com/freeflying/archive/2010/03/12/1684762.html"&gt;--- Html注入和Nofollow&lt;/a&gt; &lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;这个系列可以算是我的一个读书笔记---WROX红皮书系列之《搜索引擎优化高级编程》（Professional Search Engine Optimization with ASP.NET:A Developer's Guide to SEO）。我觉得蛮不错的，第一是比较系统和权威；第二是不同于一般的SEO的理论介绍，它着重于asp.net技术的实现！推荐一下。另外，因为是老外的书，所以所谓的搜索引擎，其实没有包括百度，主要针对的是Google和Yahoo。但博客中也有很多知识只是我自己的理解，欢迎大家指正讨论。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;SEO，搜索引擎优化，简单的理解，就是一种让网站能尽可能的被搜索引擎收录而且排名靠前的技术。可能很多程序员并不是很看重或者了解，但对于无数的草根站长（包括垃圾站长，呵呵）和众多希望进行网络营销的中小企业而言，SEO是简直是一个入门的基本功。但关于SEO的基础知识，我也就点到即止，因为类似的文章网上太多了。而且是在博客园里面，我会把重点放在技术层面上。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;所涉及的技术其实比较&amp;#8220;底层&amp;#8221;，对于直接学习ASP.NET2.0甚至是3.5的同学来说，应该还是很有帮助的，如：&lt;br /&gt;1. 应用程序生命周期事件，如Global.asax和HttpModule；&lt;/p&gt;&lt;p&gt;3. 正则表达式；（以上都关系到URLRewrite）&lt;/p&gt;&lt;p&gt;4. Http报头信息中的状态码：404、301、500等；（主要用于站点重定向）&lt;br /&gt;&lt;/p&gt;&lt;p&gt;5. XML文件生成；（关系到网站地图，RSS）&lt;/p&gt;&lt;p&gt;6. HttpHandler；（动态的生产验证码、Robert.txt文件，用于排除重复内容） &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/freeflying/aggbug/1669484.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/freeflying/archive/2010/02/19/1669484.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/freeflying/archive/2010/02/19/1669469.html</id><title type="text">ASP.NET的SEO: 服务器控件背后——SEO友好的Html和JavaScript</title><summary type="text">本系列目录 假设你需要从一个页面转向其他页面，下面有很多种方式，你是如何选择的呢？你能清晰的说明理由么？[代码] 如果你还有些迷茫，我建议你查看他们生成html之后的源代码。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&amp;gt;&amp;lt;aid="HyperL...</summary><published>2010-02-19T11:56:00Z</published><updated>2010-02-19T11:56:00Z</updated><author><name>自由飞</name><uri>http://www.cnblogs.com/freeflying/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freeflying/archive/2010/02/19/1669469.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freeflying/archive/2010/02/19/1669469.html"/><content type="html">&lt;p&gt;&lt;a target="_blank" href="http://www.cnblogs.com/freeflying/archive/2010/02/19/1669484.html"&gt;本系列目录&lt;/a&gt; &amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;假设你需要从一个页面转向其他页面，下面有很多种方式，你是如何选择的呢？你能清晰的说明理由么？&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;链接的表现形式&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:HyperLink&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="HyperLink1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;NavigateUrl&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="~/Default2.aspx"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;HyperLink&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:HyperLink&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:LinkButton&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="LinkButton1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;PostBackUrl&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="~/Default2.aspx"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;LinkButton&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:LinkButton&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;出于美观的考虑，很多网站都会用button来替换掉link&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Button1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Button"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;PostBackUrl&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="~/Default2.aspx"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;用图片做链接，也有两种选择方式&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:ImageButton&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ImageButton1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;PostBackUrl&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="~/Default2.aspx"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;ImageUrl&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="~/upup.gif"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:HyperLink&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="HyperLink2"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;NavigateUrl&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="~/Default2.aspx"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;ImageUrl&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="~/upup.gif"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:HyperLink&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;如果你还有些迷茫，我建议你查看他们生成html之后的源代码。&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('d48074ff-5d4b-49c9-ac70-84af92fd2449')"&gt;&lt;div id="cnblogs_code_open_d48074ff-5d4b-49c9-ac70-84af92fd2449"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="HyperLink1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;href&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Default2.aspx"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;HyperLink&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;HyperLink解析成Html之后对应的就是一个单纯的超链接，href指向了要跳转的页面&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="LinkButton1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;href&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="javascript:WebForm_DoPostBackWithOptions(new&amp;nbsp;WebForm_PostBackOptions(&amp;amp;quot;LinkButton1&amp;amp;quot;,&amp;nbsp;&amp;amp;quot;&amp;amp;quot;,&amp;nbsp;false,&amp;nbsp;&amp;amp;quot;&amp;amp;quot;,&amp;nbsp;&amp;amp;quot;Default2.aspx&amp;amp;quot;,&amp;nbsp;false,&amp;nbsp;true))"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;LinkButton&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;LinkButton1虽然也是一个锚标记，但实际上是利用的JavaScript进行的跳转&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="submit"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Button1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Button"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;onclick&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="javascript:WebForm_DoPostBackWithOptions(new&amp;nbsp;WebForm_PostBackOptions(&amp;amp;quot;Button1&amp;amp;quot;,&amp;nbsp;&amp;amp;quot;&amp;amp;quot;,&amp;nbsp;false,&amp;nbsp;&amp;amp;quot;&amp;amp;quot;,&amp;nbsp;&amp;amp;quot;Default2.aspx&amp;amp;quot;,&amp;nbsp;false,&amp;nbsp;false))"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Button1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;button被解析成type&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;submit&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;的input元素，同样通过JavaScript进行页面的跳转&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="image"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ImageButton1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ImageButton1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;src&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="upup.gif"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;onclick&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="javascript:WebForm_DoPostBackWithOptions(new&amp;nbsp;WebForm_PostBackOptions(&amp;amp;quot;ImageButton1&amp;amp;quot;,&amp;nbsp;&amp;amp;quot;&amp;amp;quot;,&amp;nbsp;false,&amp;nbsp;&amp;amp;quot;&amp;amp;quot;,&amp;nbsp;&amp;amp;quot;Default2.aspx&amp;amp;quot;,&amp;nbsp;false,&amp;nbsp;false))"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;style&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="border-width:0px;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;ImageButton被解析成type&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;image&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #800000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;的input元素，同样通过JavaScript进行页面的跳转&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="HyperLink2"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;href&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Default2.aspx"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;img&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;src&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="upup.gif"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;style&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="border-width:0px;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;给HyperLink的ImageUrl属性赋值后，解析成Html之后对应的就是一个超链接中&amp;#8220;夹&amp;#8221;了一个img，但href仍然指向的要跳转的页面&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;%&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;知道了这些又有什么用呢？&lt;br /&gt;&lt;br /&gt;用处很多，但我们今天只谈论SEO。&lt;br /&gt;就目前的搜索引擎技术手段，JavaScript(当然也就包括了AJAX)、表单元素（如input）、Flash和Image都无法（或者很难）被读取。&amp;#8220;蜘蛛&amp;#8221;倾向于读取简单的html格式的文本。所以，从SEO的角度出发：&lt;br /&gt;&lt;br /&gt;1. 不要使用JavaScript或表单进行页面跳转链接，如果一个普通的&amp;lt;a&amp;gt;&amp;lt;/a&amp;gt;也能完成同样的功能。一般来说，任何不能通过标准锚标识符（&amp;lt;a&amp;gt;&amp;lt;/a&amp;gt;）进入的导航，都不会被蜘蛛检索到。如果本来就使用的客户端元素，我们应该比较容易注意到这一点；但当使用经过封装处理过后的服务器端控件时，我们就可能会大意了。&lt;br /&gt;&lt;br /&gt;2. 注意UpdatePanel里没有文本内容的情况。我们可以做一个简单的测试：&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('38deaa3f-98c4-460a-b618-9bca496be334')"&gt;&lt;div id="cnblogs_code_open_38deaa3f-98c4-460a-b618-9bca496be334"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:ScriptManager&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ScriptManager1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:ScriptManager&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:UpdatePanel&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="UpdatePanel1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Label&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="lbl"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Label&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Button1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Text&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Button"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;onclick&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Button1_Click"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:UpdatePanel&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Button1_Click(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.lbl.Text&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;我是UpdatePanel生成的，所以你看不见我！&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;解析成Html后的源代码部分：&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="UpdatePanel1"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;span&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="lbl"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;span&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="submit"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Button1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Button"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Submit1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;这是很好理解的，因为UpdatePanel一样是通过页面的JavaScript函数来生成页面内容的。查看源代码，我们能看到相关的JavaScript函数，但不能看到函数生成的内容。而搜索引擎的蜘蛛，它也是只看源代码的。&lt;br /&gt;&lt;br /&gt;3. 当我们需要使用弹出页面时，通常的做法是：&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;href&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="#"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;onclick&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="window.open('popup.html','common','height=600,weight=800');"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;common&amp;nbsp;popup&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;根据我们上面的交代，这样的写法，对SEO而言，无疑也是不利的。所以我们应该使用下面的代码，即保证了弹出窗口的效果，也是SEO友好的。而且即使客户的浏览器不支持或者禁用掉JavaScript，页面一样能够顺利的跳转。&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;href&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="popup.html"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;onclick&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="window.open(this.href,'seo','height=600,weight=800');return&amp;nbsp;false;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;target&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="_blank"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;seo&amp;nbsp;popup&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;注意：这里的return&amp;nbsp;false语句不能省略。&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&lt;/span&gt;&lt;span style="background-color: #ffff00; color: #000000;"&gt;%&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;4. 当我们希望使用一种特殊的字体（常常是栏目标题之类）的时候，我们经常使用一张汉字图片来代替。这也是一个比较麻烦的事情，因为作为标题，其内容常常是相当重要的关键字，如果使用图片，蜘蛛是也无法读取的。一种可能的解决方案是sIFR，但这方面我并不是很熟；网上搜了一下，似乎还不能应用于汉字。&lt;br /&gt;对于图片，我们常用的SEO方法是注明title和alt，如&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;img&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;alt&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ASP.NET搜索引擎优化"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="使用ASP.NET技术开发网站时应注意到的一些SEO技术"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;src&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="seo.gif"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;不过这也属于&amp;#8220;不可见的页面元素&amp;#8221;，具体效果如何也很难精确衡量。但有总比没有强！&lt;br /&gt;&lt;br /&gt;5. 其他一些注意事项：&lt;br /&gt;&amp;nbsp;&amp;nbsp; 5.1 将html标签的语义和css结合起来，和&amp;lt;span&amp;gt;和&amp;lt;div&amp;gt;不同，&amp;lt;h1&amp;gt;意味着标题、&amp;lt;b&amp;gt;意味着强调、&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;意味着列表&amp;#8230;&amp;#8230;，这些语义标签能给搜索引擎更清晰的指示；&lt;br /&gt;&amp;nbsp;&amp;nbsp; 5.3 重要的内容放在html页面（指源代码，而不是浏览器显示结果）的顶端&lt;br /&gt;&amp;nbsp;&amp;nbsp; 5.5 将大段的JavaScript放在页面底部或者单独的js文件中；&lt;br /&gt;&amp;nbsp;&amp;nbsp; 5.2 最好不要使用框架（frame）布局；&lt;br /&gt;&amp;nbsp;&amp;nbsp; 5.3 大量的VIEWSTATE可能会对&amp;#8220;蜘蛛&amp;#8221;造成干扰；&lt;br /&gt;&amp;nbsp;&amp;nbsp; 5.5 牢记：就目前的搜索引擎技术手段，JavaScript(当然也就包括了AJAX)、表单元素（如input）、Flash和Image都无法（或者很难）被读取。&lt;img src="http://www.cnblogs.com/freeflying/aggbug/1669469.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/freeflying/archive/2010/02/19/1669469.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/freeflying/archive/2010/02/14/1668208.html</id><title type="text">ASP.NET的SEO--- Global.asax和HttpModule中的RewritePath()方法</title><summary type="text">本系列目录 因为在网上搜到了很多这方面的文章，而且UrlRewrite中SEO中的重要性也在逐步下降，所以这一节我就写得简单一些。以下是几个重点：1.UrlRewrite，顾名思义，只是针对URL进行的重写操作，不要认为www.freeflying.com/Jack/articles-2467.html就真的对应着一个html文件：articles-2467.html；实际上，该链接真正对应的是w...</summary><published>2010-02-14T06:42:00Z</published><updated>2010-02-14T06:42:00Z</updated><author><name>自由飞</name><uri>http://www.cnblogs.com/freeflying/</uri></author><link rel="alternate" href="http://www.cnblogs.com/freeflying/archive/2010/02/14/1668208.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/freeflying/archive/2010/02/14/1668208.html"/><content type="html">&lt;p&gt;&lt;a target="_blank" href="http://www.cnblogs.com/freeflying/archive/2010/02/19/1669484.html"&gt;本系列目录&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;因为在网上搜到了很多这方面的文章，而且UrlRewrite中SEO中的重要性也在逐步下降，所以这一节我就写得简单一些。以下是几个重点：&lt;/p&gt;&lt;br /&gt;1.UrlRewrite，顾名思义，只是针对URL进行的重写操作，不要认为www.freeflying.com/Jack/articles-2467.html就真的对应着一个html文件：articles-2467.html；实际上，该链接真正对应的是www.freeflying.com/articles.aspx?author=Jack&amp;amp;id=2467。所以，以前有人把这种技术称之为&amp;#8220;伪静态&amp;#8221;；当然，既然有&amp;#8220;伪&amp;#8221;，也就有真，那就是用IO操作，真正的根据用户输入、数据库查询之类的，生成一个html文件。这种技术，不再本系列讨论范围之类（且个人认为，价值不大）。&lt;br /&gt;&lt;br /&gt;2. 要将www.freeflying.com/Jack/articles-2467.html 转化成 www.freeflying.com/articles.aspx?author=Jack&amp;amp;id=2467，肯定不能在我们习惯的页面事件中完成。因为如果不经过转换，我们根本无法到达www.freeflying.com/articles.aspx页面，链接会直接指向www.freeflying.com/Jack/articles-2467.html，在那里，也没有articles-2467.html文件，我们只能得到一个404错误。所以，转换工作将在&amp;#8220;应用程序生命周期&amp;#8221;中完成。&lt;br /&gt;&lt;br /&gt;具体的实现方式有两种：Global.asax和HttpModule；但他们都采用了同一个方法：RewritePath()。&lt;br /&gt;&lt;br /&gt;对于应该选择Global.asax还是HttpModule，有很多人都认为，HttpModule 效率更高，但我无法理解。按照msdn的说法，&amp;#8220;如果我们创建了Global.asax文件，该文件将会被编译成一个HttpApplication派生类，并由该HttpApplicant派生类代替默认的HttpApplication实例，用以维护application。当 HttpApplication实例被创建的同时，在web.config中注册的所有HttpModule也会被创建；再然后，HttpApplication的Init()方法被调用。&amp;#8221;&amp;#8220;HttpApplication实例维护一个pipeline，用以依次对 request请求进行验证、缓存等处理&amp;#8221;，而比较常用的有BeginRequest事件（在UrlRewrite中就是调用的该方法），ProcesRequest()方法（HttpHandler中必须实现的方法）。所以，我认为，HttpApplication（包括 Global.asax文件）&amp;#8220;包含&amp;#8221;了Application事件、HttpModule和HttpHandler的&amp;#8220;容器&amp;#8221;。无论把代码写在 Global.asax还是HttpModule中，性能是一样的。&lt;br /&gt;3. 如代码所示，如果仅有一个或几个转换，我们可以使用if之类的表达式，如果是成千上万个转换，我们怎么办？而且事实的确如此，可以想象，id应该就是数据库里某个表的自增长字段。有没有一种自动化的处理机制，使得我们可以让程序智能化的进行URL的转换？有，就是大名鼎鼎的正则表达式。我们下一节专节进行讲解。&lt;br /&gt;&lt;br /&gt;最后，是我找到的一些很好的参考链接：&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://googlechinablog.com/2008/10/blog-post_20.html"&gt;UrlRewrite还有必要么？Google的官方解释 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.cnblogs.com/jun1st/archive/2009/10/25/aspnet_urlrouting.html"&gt;asp.net4.0中的&amp;#8220;URL Routing&amp;#8221;，据说能实现和URL Rewrite一样的功能 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.cnblogs.com/JeffreyZhao/archive/2008/01/12/url-rewrite-1.html"&gt;园子里老赵的博客，UrlRewrite的实现机制 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.cnblogs.com/JeffreyZhao/archive/2009/07/06/more-on-page-statilization-and-seo.html"&gt;还是老赵，估计是被SEOer气疯了之后写的一篇博客 &lt;/a&gt;&lt;img src="http://www.cnblogs.com/freeflying/aggbug/1668208.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/freeflying/archive/2010/02/14/1668208.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
