??xml version="1.0" encoding="utf-8" standalone="yes"?>最新国产成人亚洲精品影院,亚洲人成无码久久电影网站,亚洲激情视频在线观看http://www.tkk7.com/rendong/category/13805.htmlzh-cnFri, 02 Mar 2007 07:17:11 GMTFri, 02 Mar 2007 07:17:11 GMT60面向搜烦引擎的内容管理系l(CMSQ设计(转http://www.chedong.com/tech/cms.htmlQ?/title><link>http://www.tkk7.com/rendong/archive/2006/08/05/61942.html</link><dc:creator>rendong</dc:creator><author>rendong</author><pubDate>Sat, 05 Aug 2006 07:02:00 GMT</pubDate><guid>http://www.tkk7.com/rendong/archive/2006/08/05/61942.html</guid><wfw:comment>http://www.tkk7.com/rendong/comments/61942.html</wfw:comment><comments>http://www.tkk7.com/rendong/archive/2006/08/05/61942.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/rendong/comments/commentRss/61942.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/rendong/services/trackbacks/61942.html</trackback:ping><description><![CDATA[作者:(x) 车东 Email: chedongATbigfoot.com/chedongATchedong.com <p>写于Q?003/03 最后更斎ͼ(x) </p><p>版权声明Q可以Q意{载,转蝲时请务必以超链接形式标明文章原始出处和作者信息及(qing)本声?br /><a tppabs="http://www.chedong.com/tech/cms.html"><font color="#002c99">http://www.chedong.com/tech/cms.html</font></a></p><p>关键词:(x)"content manage system" cms path_info cgi php cache squid 内容理 mod_rewrite url rewrite pȝ ~存 Cacheable "Search engine friendly" </p><p>内容摘要Q?br />你完全不必耐心的看到最后,本文主要说明的是在设计CMS时以?Ҏ(gu)意事:(x)<br /></p><ol><li>搜烦引擎友好(Search engine Friendly)Q基于PATH_INFO的参数解析得动态网在链接QURIQŞ式上更像静态的目录l构Q大大方便网站内容被搜烦引擎收录Q? </li><li>可缓存性(Cache FriendlyQ:(x)CMS本n不要q多考虑“效率”问题,只要面输出设计的比较CacheableQ效率问题可以通过更前端专业的~存服务器解冟?</li></ol><p>后面附有一个简单的利用PATH_INFO机制 + <a href="javascript:if(confirm('http://www.squid-cache.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.squid-cache.org/'" tppabs="http://www.squid-cache.org/"><font color="#002c99">Squid</font></a>WEB加速模式实现PHP动态网늚静态发布的例子Q比起那些能导出静态页面的大型发布pȝq种轻量U的动态缓存解x案只需对原有的动态发布系l做量的修改,从而大大提高了原有内容发布pȝ的重用度?/p><h2><a name="friendly"></a>|站内容静态发布的重要性:(x)Cacheable / Search Engine Friendly</h2><p>׃一个动态页面的速度往往?x)比静态页面慢2Q?0倍,因此对于一个访问量逐步向百万发展的网站来_(d)讉K速度很快成ؓ(f)一个瓶颈。除了优化内容发布系l的应用本n外,如果能把更新频率比较低的动态页面{存成静态网|发布Q速度上的提升效果是显著的,而静态网如果能被缓存在内存里,讉K速度更会(x)比原有动态网|2Q?个数量的提高?br /></p><p>在国外内容管理系l?CMS)已经是一个非常成熟的行业Q能够真正支撑大讉K的系l中静态页面输出和~存pȝ几乎是必ȝ?br /><span id="iujsris" class="weblink"><a >www.best-code.com</a></span><br />此外随着互联|上的内容以惊h速度的增长也来突Z搜烦引擎的重要性,如果|站x好地被搜索引擎收录,|站设计除了面向用户友好QUser FriendlyQ外Q?a tppabs="http://www.chedong.com/tech/google.html"><font color="#002c99">面向搜烦引擎友好的设计也是非帔R要的</font></a>。链接地址相对固定的静态网|较适合搜烦引擎索引Q动态网后面跟的参数灵zd很大Q因此很多搜索引擎都往往?x)忽略动态页面,比如Q对于news.php?day=22&month=03&year=2003Q很多搜索引擎可能只索引news.phpq个面一ơ,更多其他参数的页面可能都?x)当成相似内?gu)o(h)掉;<span style="FONT-STYLE: italic">我个Z直怀疑在搜烦引擎中:(x)即是同样内容,静态页面往往也比动态网늚PageRank高?/span></p><p>因此Q将动态页面{换成静态页面,无论从效率上q是面向搜烦引擎友好上,都是一个门L(fng)内容发布pȝ必须面对的问题?br /></p><h2><a name="compare"></a>静态缓存和动态缓存的比较 </h2><p>静态页面的~存可能?UŞ式:(x)</p><ol><li>静态缓存:(x)是在新内容发布的同时qȝ成相应内容的静态页面,比如Q?003q??2日,理员通过后台内容理界面录入一新dQ就立刻生成http://www.chedong.com/tech/2003/03/22/001.htmlq个静态页面,q同步更新http://www.chedong.com/tech/index.htmlq个静态页面上的相关链接?br /></li><li>动态缓存:(x)是在新内容发布以后,q不预先生成相应的静态页面,直到对相应内容发求时Q如果前台缓存服务器找不到相应缓存,向后台内容理服务器发求,后台pȝ?x)生成相应内容的静态页面,用户W一ơ访问页面时可能?x)慢一点,但是以后是直接讉K~存了?br />如果去ZDNet{国外网站会(x)发现他们使用的基?a href="javascript:if(confirm('http://www.vignette.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.vignette.com/'" tppabs="http://www.vignette.com/"><font color="#002c99">Vignette</font></a>内容理pȝ都有q样的页面名Uͼ(x)0,22342566,300458.html。其实这里的0,22342566,300458是用逗号分割开的多个参敎ͼ(x)<br />W一ơ访问找不到面后,相当于会(x)在服务器端生一个doc_type=0&doc_id=22342566&doc_template=300458的查询,<br />而查询结果会(x)生成的缓存的静态页面:(x)0,22342566,300458.html </li></ol><p>静态缓存的~点Q?/p><ul><li>复杂的触发更新机Ӟ(x)q两U机制在内容理pȝ比较单的时候都是非帔R用的。但对于一个关pL较复杂的|站来说Q页面之间的逻辑引用关系成Z个非帔R常复杂的问题。最典型的例子就是一条新闻要同时出现在新闻首和相关?个新M题中Q在静态缓存模式中Q每发一新文章Q除了这新dҎ(gu)w的面外,q需要系l通过触发器生成多个新的相关静态页面,q些相关逻辑的触发也往往׃(x)成ؓ(f)内容理pȝ中最复杂的部分之一? </li><li>旧内容的扚w更新Q?通过静态缓存发布的内容Q对于以前生成的静态页面的内容很难修改Q这L(fng)戯问旧面Ӟ新的模板Ҏ(gu)无法生效?</li></ul><p></p><p>在动态缓存模式中Q内容管理系l只需要关心各个页面自w,而相关的其他面链接能自动更斎ͼ从而大大减了设计触发器设计的需要?/p>VIGNETTE的动态缓存虽然很好,但是一个系l如果设计得太全面其实也是有很大危险的:(x)如果一个频道下文章很多Q比如达到十万时Q如果生成的静态页面都在一个目录下Q对pȝ文gpȝ是一个极大的危害Q因Z个目录下文g个数过3000效率׃(x)非常差,甚至qrm *旉?x)出现too many arguments错误?br /><br />单的_(d)一个好的内容管理系l应该包括:(x)<br /><ol><li>输入Q方便的内容录入Q所见即所得的~辑界面Q权限控制等…? </li><li>输出Q方便的模板理Q缓存发布等…?br /></li></ol>设计或寻找这样一个系l如果考虑功能全面和高集成度,你会(x)发现只有那些几十?以上的专业内容发布系l才能你满所有的需求?br /><br />以前做应用的时候也用过一些方式:(x)应用首次讉K以后生成的内容存成一个缓存文Ӟ下次h时从~存目录中读取缓存文Ӟ内容更新Ӟ应用把内容从~存目录中删掉,从而减对数据库的讉K。虽然这样做也能承蝲比较大的负蝲Q但q样的内容管理和~存一体的pȝ是很隑ֈȝ?br /><br />如果换一个思\Q通过一定的分工现内容管理和~存机制2者的分离Q你?x)发现无论哪一斚w可选的余地都是非常大的。甚x可能利用目前的已l是“功能”比较全面的内容理pȝQ而让所有“效率”问题都由前台更专业Q而且是很Ҏ(gu)分布的缓存服务器解决Q可以是通过开放源代码的SQUID做反总理的WEB加速,可以是专门的~存g讑֤Q甚x专业的缓存服务商?br /><br />动态缓存必L一个基于静态链接本w的参数解析q程Q很多专业内容管理系l系l都是将参数解析机制做成了WEB服务器的模块实现的?<br /><br />我们可以把以前的HTTP/GET方式?key=value改ؓ(f)直接?value1/value2的方式来传递,从而实C动态页面的静态URL形式。而缓存只需要在前端加上一层CACHE服务器,比如QSquid。网站动态内容的动态缓存发布就可以实现了?br /><p>按照q个机制实现的发布系l很好地体现了应用系l的分工Q把复杂地内容管理系l分解成Q内容输入和~存q?个相对简单的pȝ实现。而中间的内容发布通过URL REWRITE或PATH_INFO解决动态页面的参数传递:(x)</p><ul><li>后台Q内容管理系l,专心的将内容发布做好Q比如:(x)复杂的工作流理Q复杂的模板规则{…? </li><li>前台Q页面的~存理则可以用缓存YӞ比如前台80端口使用SQUID对后?080的内容发布管理系l进行缓存)Q缓存硬Ӟ甚至交给~存服务商?br /></li></ul><pre>______________________ ___________________<br />|Squid Software cache| |F5 Hardware cache|<br />---------------------- -------------------<br /> \ /<br /> \ ________________ /<br /> |ASP |JSP |PHP |<br /> PATH_INFO Based Content Manage System<br /> ----------------</pre><ol></ol><p></p><h2><a name="pathinfo"></a>把URI地址用作参数传递:(x)URL REWRITE和PATH_INFO</h2><p>最q看到很多关于面向搜索引擎URL设计优化(URI Pretty)的文章,提到了很多利用一定机制将动态网参数变成像静态网늚形式Q?br />比如可以:(x)<a href="javascript:if(confirm('http://www.chedong.com/phpMan.php?mode=man&parameter=ls \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.chedong.com/phpMan.php?mode=man&parameter=ls'" tppabs="http://www.chedong.com/phpMan.php?mode=man&parameter=ls"><font color="#002c99">http://www.chedong.com/phpMan.php?mode=man&parameter=ls</font></a><br />变成Q?a href="javascript:if(confirm('http://www.chedong.com/phpMan.php/man/ls \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.chedong.com/phpMan.php/man/ls'" tppabs="http://www.chedong.com/phpMan.php/man/ls"><font color="#002c99">http://www.chedong.com/phpMan.php/man/ls</font></a><br /></p><p>最单的是基于各UWEB服务器中的URL重写转向QRewriteQ模块的URL转换Q这样几乎可以不修改E序的实现将news.asp?id=234的映成news/234.html</p><p>Apache上有一个模块(非缺省)Qmod_rewriteQ当然URL REWRITE的强大功能还q远不止于此?br /></p><p>当我需要将news.asp?id=234的映成news/234.htmlӞ(x)只需讄Q?br />RewriteRule /news/(\d+)\.html /news\.asp\?id=$1 [N,I]<br />q样把 /news/234.html 映射成了 /news.asp?id=234<br />当有?news/234.html的请求时Qweb服务器会(x)把实际请求{发给/news.asp?id=234<br /></p><p>而在IIS也有相应的REWRITE模块Q比?a href="javascript:if(confirm('http://www.isapirewrite.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.isapirewrite.com/'" tppabs="http://www.isapirewrite.com/"><font color="#002c99">ISAPI REWRITE</font></a>?a href="javascript:if(confirm('http://www.qwerksoft.com/products/iisrewrite/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.qwerksoft.com/products/iisrewrite/'" tppabs="http://www.qwerksoft.com/products/iisrewrite/"><font color="#002c99">IIS REWRITE</font></a>Q语法都是基于正则表辑ּQ因此语法是几乎相同的:(x)</p><p>比对于某一个简单应用可以是Q?br />RewriteRule /news/(\d+)? /news\.asp\?id=$1 [N,I]<br />q样把 /news/234 映射C /news.asp?id=234<br /><br />如我需要把 http://www.myhost.com/foo.php?a=A&b=B&c=C 表现?http://www.myhost.com/foo.php/a/A/b/B/c/C。而一个更通用的能够将所有的动态页面进行参数映的表达式是Q?br />RewriteRule (.*?\.php)(\?[^/]*)?/([^/]*)/([^/]*)(.+?)? $1(?2$2&:\?)$3=$4?5$5: [N,I]<br /></p><p>通过URL REWRITEq有一个好处就是隐藏后台实玎ͼ(x)<br />比如我们需要将应用从news.asp?id=234q移成news.php?query=234Ӟ前台的表现可以一直保持ؓ(f)news/234.html。从实现应用和前台表现的分离Q保持了URL的稳定性,在实现后台应用^台的q移旉常有用。用mod_rewrite甚至可以把请求{发到其他后台服务器上Q?/p><p><br />另外一个方式就是基于PATH_INFOQ?br />PATH_INFO是一个CGI 1.1的标准,所有直接跟在CGI或动态页面app.cgi后面?/value_1/value_2"是PATH_INFO参数Q?br />比如<a href="javascript:if(confirm('http://www.chedong.com/phpMan.php/man/ls \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.chedong.com/phpMan.php/man/ls'" tppabs="http://www.chedong.com/phpMan.php/man/ls"><font color="#002c99">http://www.chedong.com/phpMan.php/man/ls</font></a>Q中Q?PATH_INFO = "/man/ls"<br /></p>PATH_INFO是CGI标准Q因此PHP Servlet{都有比较好的支持。比如Servlet中就有request.getPathInfo()Ҏ(gu)?br /><span style="FONT-STYLE: italic">注意Q?myapp/servlet/Hello/foo的getPathInfo()q回的是/fooQ?myapp/dir/hello.jsp/foo的getPathInfo()返回的/hello.jspQ从q里你也可以知道jsp其实是一个Servlet的PATH_INFO参数。ASP不支持PATH_INFOQ?/span><br /><br />PHP中基于PATH_INFO的参数解析的例子如下Q?br />//注意Q第一个参数是I的Q参数按"/"分割<br />if ( isset($_SERVER["PATH_INFO"]) ) {<br />    list($nothing, $day, $id) = explode('/', $_SERVER["PATH_INFO"]);<br />}<br /><br />如何隐蔽应用Q例?phpQ的扩展名:(x)<br />在APACHE中这样配|:(x)<br /><FilesMatch "^app_name$"><br />    ForceType application/x-httpd-php<br /></FilesMatch><br /><br />如何更像静态页面:(x)app_name/my/app.html<br />解析的PATH_INFO参数的时候,把最后一个参数的最?个字W?html”截断即可?br /><span style="FONT-STYLE: italic">注意QAPACHE2中缺省是不允许PATH_INFO的,需要设|?/span><br style="FONT-STYLE: italic" /><span style="FONT-STYLE: italic">AcceptPathInfo on</span><br /><br />特别是针对用虚拟主机用P无权安装和配|mod_rewrite的时候,PATH_INFO往往成了唯一的选择?br /><br />虽然通过修改讄SQUID也可以对?的动态页面进行缓存,但ؓ(f)了方便搜索引擎收录烦引,q是参数改成PATH_INFO比较好?br /><br />OKQ这样以后看见类ghttp://www.example.com/article/234q样的网你q道其实是article/show.php?id=234q个phpE序生成的动态网,很多站点表面看上d能有很多静态目录,其实很有可能都是使用1Q?个程序实现的内容发布。比如很多WIKIWIKIpȝ都用了q个机制Q整个系l就一个简单的wikiE序Q而看上去的目录其实都是这个应用拿后面的地址作ؓ(f)参数的查询结果?br /><br />利用ZMOD_REWRITE/PATH_INFO Q?CACHE服务器的解决Ҏ(gu)对原有的动态发布系l进行改造,也可以大大降低旧有系l升U到新的内容理pȝ的成本?br /><h2><a name="page"></a>面向~存的页面设?/h2>让页面能够比较好的被~存服务器缓存,必须在生内容的WEB服务器上讄Q让q回内容的HTTP HEADER中加?Last-Modified"?Expires"声明Q比如:(x)<br />Last-Modified: Wed, 14 May 2003 13:06:17 GMT<br />Expires: Fri, 13 Jun 2003 13:06:17 GMT<br />以允许前端SQUID服务器缓存:(x)<br /><ul><li>面必须包含Last-Modified: 标记Q一般纯静态页面本w都?x)有Last-Modified信息Q动态页面需要通过函数强制加上Q比如PHP中:(x)<br />    // always modified now<br />    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");<br /><br /></li><li>必须有Expires或Cache-Control: max-age标记讄面的过期时_(d)(x)<br />对于静态页面,通过apache的mod_expiresҎ(gu)面的MIMEcd讄~存周期Q比如图片缺省是1个月QHTML面~省?天等?br /><IfModule mod_expires.c> <br />    ExpiresActive on<br />    ExpiresByType image/gif "access plus 1 month"<br />    ExpiresByType text/css "now plus 2 day"<br />    ExpiresDefault "now plus 1 day"<br /></IfModule><br /><br />对于动态页面,则可以直接通过写入HTTPq回的头信息Q比如对于新闻首index.php可以?0分钟Q而对于具体的一条新闻页面可能是1天后q期。比如:(x)在php中加入了1个月后过期:(x)<br />    // Expires one month later<br />    header("Expires: " .gmdate ("D, d M Y H:i:s", time() + 3600 * 24 * 30). " GMT");<br /><br /></li><li>如果服务器端有基于HTTP的认证,必须有Cache-Control: public标记 </li></ul>ASP应用的缓存设计:(x)<br />首先在公用的包含文g?比如include.asp)加入以下公用函数Q?br /><%<br />' Converts date (19991022 11:08:38) to http form (Fri, 22 Oct 1999 12:08:38 GMT)<br />Function DateToHTTPDate(ByVal OleDATE)<br />  Const GMTdiff = #08:00:00#<br />  OleDATE = OleDATE - GMTdiff<br />  DateToHTTPDate = engWeekDayName(OleDATE) & _<br />    ", " & Right("0" & Day(OleDATE),2) & " " & engMonthName(OleDATE) & _<br />    " " & Year(OleDATE) & " " & Right("0" & Hour(OleDATE),2) & _<br />    ":" & Right("0" & Minute(OleDATE),2) & ":" & Right("0" & Second(OleDATE),2) & " GMT"<br />End Function <br /><br />Function engWeekDayName(dt)<br />    Dim Out<br />    Select Case WeekDay(dt,1)<br />        Case 1:Out="Sun"<br />        Case 2:Out="Mon"<br />        Case 3:Out="Tue"<br />        Case 4:Out="Wed"<br />        Case 5:Out="Thu"<br />        Case 6:Out="Fri"<br />        Case 7:Out="Sat"<br />    End Select<br />    engWeekDayName = Out<br />End Function<br /><br />Function engMonthName(dt)<br />    Dim Out<br />    Select Case Month(dt)<br />        Case 1:Out="Jan"<br />        Case 2:Out="Feb"<br />        Case 3:Out="Mar"<br />        Case 4:Out="Apr"<br />        Case 5:Out="May"<br />        Case 6:Out="Jun"<br />        Case 7:Out="Jul"<br />        Case 8:Out="Aug"<br />        Case 9:Out="Sep"<br />        Case 10:Out="Oct"<br />        Case 11:Out="Nov"<br />        Case 12:Out="Dec"<br />    End Select<br />    engMonthName = Out<br />End Function<br />%><br /><br />然后在具体的面中,比如index.asp和news.asp的“最上面”加入以下代码:(x)HTTP Header<br /><br /><!--#include file="../include.asp"--><br /><%<br />' set Page Last-Modified Header:<br />' Converts date (19991022 11:08:38) to http form (Fri, 22 Oct 1999 12:08:38 GMT)<br />Response.AddHeader "Last-Modified", DateToHTTPDate(Now())<br /><br />' The Page Expires in Minutes<br />Response.Expires = 60<br /><br />' Set cache control to externel applications<br />Response.CacheControl = "public"<br />%><br /><br />其中Response.Expires 是设|页面过期时间的Q单位是分钟<br /><br />如何(g)查目前站炚w面的可缓存性(CacheablilityQ呢Q可以参考以?个站点上的工P(x)<br /><a href="javascript:if(confirm('http://www.ircache.net/cgi-bin/cacheability.py \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ircache.net/cgi-bin/cacheability.py'" tppabs="http://www.ircache.net/cgi-bin/cacheability.py"><font color="#002c99">http://www.ircache.net/cgi-bin/cacheability.py</font></a><br /><h2><a name="site"></a>面向~存的站点规?/h2>一个利用SQUID的Transparent对多个站点进行做WEB加速http accelerationҎ(gu)Q?br /><br />原先一个站点的规划可能是这L(fng)Q?br />200.200.200.207 www.chedong.com <br />200.200.200.208 news.chedong.com <br />200.200.200.209 bbs.chedong.com <br />200.200.200.205 images.chedong.com<br /><br />在SQUID模式下:(x)所有站炚w通过外部DNS指向到同一个IPQ?00.200.200.200/201q?台SQUID~存服务器上Q?台是Z冗余备䆾Q?<pre> _____________________ ________<br />www.chedong.com h \ | Squid cache box | | | / 192.168.0.4 www.chedong.com <br />news.chedong.com h -| 200.200.200.200/201 |-|firewall| - 192.168.0.4 news.chedong.com <br />bbs.chedong.com h / | /etc/hosts | | box | \ 192.168.0.3 bbs.chedong.com<br /> --------------------- --------<br /></pre>~译和配|过E:(x)<br /><ol><li>./configure --enable-referer-log --disable-internal-dns <br />--disable-internal-dnsQ禁用SQUID的DNS解析<br />--enable-referer-logQ便于APACHE COMBINED格式日志生成<br /><br /></li><li>配置Q?br />http_port 80<br />httpd_accel_host virtual<br />httpd_accel_port 8000<br />httpd_accel_uses_host_header on<br /><br /># accelerater my domain only<br />acl acceleratedHosts dstdom_regex chedong.com<br /># accelerater http protocol on port 80<br />acl acceleratedProtocol protocol HTTP<br />acl acceleratedPort port 80<br /># access arc<br />acl all src 0.0.0.0/0.0.0.0<br /><br /># Allow requests when they are to the accelerated machine AND to the<br /># right port with right protocol<br />http_access allow acceleratedProtocol acceleratedPort acceleratedHosts <br />http_access allow all </li></ol>?etc/hosts中:(x)加入内部的DNS解析Q比如:(x)<br />192.168.0.4 www.chedong.com <br />192.168.0.4 news.chedong.com<br />192.168.0.3 bbs.chedong.com<br /><br />工作原理Q?br />SQUID服务器上关闭了DNS解析Q这Ph外部q来Ӟ讄SQUIDҎ(gu)/etc/hosts文gq行内部DNS解析。这P服务器请求就可以转发到我们指定的内部地址上?br /><br />使用SQUID的反总理加速,我们不仅可以得到性能上的提升Q而且q能获得额外的安全性和配置的灵zdQ?br /><ul><li>配置灉|性提高:(x)可以自己在内部服务器上控制后台服务器的DNS解析Q当需要在服务器之间做q移调整Ӟ׃用大量修改外部DNS配置了,只需要修改内部DNS实现服务的调整? </li><li>数据安全性增加:(x)所有后台服务器可以很方便的被保护在防火墙内? </li><li>后台应用设计复杂E度降低Q原先ؓ(f)了效率常帔R要徏立专门的囄服务器images.chedong.com和负载比较高的应用服务器bbs.chedong.com分离Q在SQUID加速模式中Q所有前台请求都通过SQUID服务器:(x)实际上就都是静态页面,q样Q应用设计时׃用考虑囄和应用本w分MQ也大大降低了后台内容发布系l设计的复杂E度Q由于数据和应用都存攑֜一P也方便了文gpȝ的维护和理?br /></li></ul>节Q?br /><ul><li>大访问量的网站应可能将动态网는成静态页面作为缓存发布,甚至对于搜烦引擎q样的动态应用来_(d)~存机制也是非常非常重要的? </li><li>利用PATH_INFO机制q行解析参数Q实现动态网链接的化Q方便搜索引擎的索引Q? </li><li>在动态页面中利用HTTP Header定义~存更新{略? </li><li>利用~存服务器获得额外的配置和安全? </li><li>日志非常重要QSQUID日志~省不支持COMBINED日志Q但REFERER日志对于站点分析非常重要Q在GNU/Linux可以用以下方式生成:(x)<br />pr -mJt access.log referer.log | awk '{print $1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "$10" \x22"$14"\x22 \x22"$11"\x22"}'  > combined.log<br />  <span style="FONT-STYLE: italic">  -m merge</span><br style="FONT-STYLE: italic" /><span style="FONT-STYLE: italic">    -J join line</span><br style="FONT-STYLE: italic" /><span style="FONT-STYLE: italic">    -t omit header and footer</span></li></ul><h2>?QSQUID性能试试验</h2>phpMan.php是一个基于php的man page serverQ每个man page需要调用后台的man命o(h)和很多页面格式化工具Q系l负载比较高Q提供了Cache Friendly的URLQ以下是针对同样的页面的性能试资料Q?br />试环境QRedhat 8 on Cyrix 266 / 192M Mem <br />试E序Q用apache的ab(apache benchmark)Q?br />试条gQ请?0ơ,q发50个连?br />试目Q直接通过apache 1.3 (80端口) vs squid 2.5(8000端口Q加?0端口) <br /><br />试1Q无CACHE?0端口动态输出:(x)<br />ab -n 100 -c 10 http://www.chedong.com:81/phpMan.php/man/kill/1<br />This is ApacheBench, Version 1.3d <$Revision: 1.58 $> apache-1.3<br />Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/<br />Copyright (c) 1998-2001 The Apache Group, http://www.apache.org/<br /><br />Benchmarking localhost (be patient).....done<br />Server Software:        Apache/1.3.23                                     <br />Server Hostname:        localhost<br />Server Port:            80<br /><br />Document Path:          /phpMan.php/man/kill/1<br />Document Length:        4655 bytes<br /><br />Concurrency Level:      5<br />Time taken for tests:   63.164 seconds<br />Complete requests:      50<br />Failed requests:        0<br />Broken pipe errors:     0<br />Total transferred:      245900 bytes<br />HTML transferred:       232750 bytes<br />Requests per second:    0.79 [#/sec] (mean)<br />Time per request:       6316.40 [ms] (mean)<br />Time per request:       1263.28 [ms] (mean, across all concurrent requests)<br />Transfer rate:          3.89 [Kbytes/sec] received<br /><br />Connnection Times (ms)<br />              min  mean[+/-sd] median   max<br />Connect:        0    29  106.1      0   553<br /><span style="COLOR: rgb(255,0,0)">Processing:  2942  6016 1845.4   6227 10796</span><br style="COLOR: rgb(255,0,0)" /><span style="COLOR: rgb(255,0,0)">Waiting:     2941  5999 1850.7   6226 10795</span><br style="COLOR: rgb(255,0,0)" /><span style="COLOR: rgb(255,0,0)">Total:       2942  6045 1825.9   6227 10796</span><br /><br />Percentage of the requests served within a certain time (ms)<br />  50%   6227<br />  66%   7069<br />  75%   7190<br />  80%   7474<br />  90%   8195<br />  95%   8898<br />  98%   9721<br />  99%  10796<br /> 100%  10796 (last request)<br /><br />试2QSQUID~存输出<br />/home/apache/bin/ab -n50 -c5 "http://localhost:8000/phpMan.php/man/kill/1"<br />This is ApacheBench, Version 1.3d <$Revision: 1.58 $> apache-1.3<br />Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/<br />Copyright (c) 1998-2001 The Apache Group, http://www.apache.org/<br /><br />Benchmarking localhost (be patient).....done<br />Server Software:        Apache/1.3.23                                     <br />Server Hostname:        localhost<br />Server Port:            8000<br /><br />Document Path:          /phpMan.php/man/kill/1<br />Document Length:        4655 bytes<br /><br />Concurrency Level:      5<br />Time taken for tests:   4.265 seconds<br />Complete requests:      50<br />Failed requests:        0<br />Broken pipe errors:     0<br />Total transferred:      248043 bytes<br />HTML transferred:       232750 bytes<br />Requests per second:    11.72 [#/sec] (mean)<br />Time per request:       426.50 [ms] (mean)<br />Time per request:       85.30 [ms] (mean, across all concurrent requests)<br />Transfer rate:          58.16 [Kbytes/sec] received<br /><br />Connnection Times (ms)<br />              min  mean[+/-sd] median   max<br />Connect:        0     1    9.5      0    68<br /><span style="COLOR: rgb(255,0,0)">Processing:     7    83  537.4      7  3808</span><br style="COLOR: rgb(255,0,0)" /><span style="COLOR: rgb(255,0,0)">Waiting:        5    81  529.1      6  3748</span><br style="COLOR: rgb(255,0,0)" /><span style="COLOR: rgb(255,0,0)">Total:          7    84  547.0      7  3876</span><br /><br />Percentage of the requests served within a certain time (ms)<br />  50%      7<br />  66%      7<br />  75%      7<br />  80%      7<br />  90%      7<br />  95%      7<br />  98%      8<br />  99%   3876<br /> 100%   3876 (last request)<br /><br />l论QNo Cache / Cache = 6045 / 84 = 70<br />l论Q对于可能被~存h的页面,服务器速度可以?个数量的提高,因ؓ(f)SQUID是把~存面攑֜内存里的Q因此几乎没有硬盘I(y)/O操作Q?br /><br /><h2>?Q一个CACHE多主机APACHE服务的SQUID安装配置Q?/h2>squid的编译:(x)<br />./configure --enable-useragent-log  --enable-referer-log --enable-default-err-language=Simplify_Chinese --enable-err-languages="Simplify_Chinese English" --disable-internal-dns  <br />make<br />#make install<br />#cd /usr/local/squid<br />make dir cache<br />chown squid.squid *<br />vi /usr/local/squid/etc/squid.conf<br /><br />---------------------cut here----------------------------------<br /># visible name<br />visible_hostname cache.example.com<br /><br /># cache config: space use 1G and memory use 256M<br />cache_dir ufs /usr/local/squid/cache 1024 16 256 <br />cache_mem 256 MB<br />cache_effective_user squid<br />cache_effective_group squid<br /><br /><br />http_port 80<br />httpd_accel_host virtual<br />httpd_accel_single_host off<br />httpd_accel_port 80<br />httpd_accel_uses_host_header on<br />httpd_accel_with_proxy on<br /><br /># accelerater my domain only<br />acl acceleratedHostA dstdomain .example1.com<br />acl acceleratedHostB dstdomain .example2.com<br />acl acceleratedHostC dstdomain .example3.com<br /># accelerater http protocol on port 80<br />acl acceleratedProtocol protocol HTTP<br />acl acceleratedPort port 80<br /># access arc<br />acl all src 0.0.0.0/0.0.0.0<br /><br /># Allow requests when they are to the accelerated machine AND to the<br /># right port with right protocol<br />http_access allow acceleratedProtocol acceleratedPort acceleratedHostA<br />http_access allow acceleratedProtocol acceleratedPort acceleratedHostB<br />http_access allow acceleratedProtocol acceleratedPort acceleratedHostC<br /><br /># logging<br />emulate_httpd_log on<br />referer_log /usr/local/squid/var/logs/referer.log<br />useragent_log /usr/local/squid/var/logs/agent.log<br /><br /><br />----------------------cut here---------------------------------<br /><br />创徏~存目录Q?br />/usr/local/squid/sbin/squid -z<br /><br />启动squid<br />/usr/local/squid/sbin/squid<br /><br />停止squidQ?br />/usr/local/squid/sbin/squid -k shutdown<br /><br />启用新配|:(x)<br />/usr/local/squid/sbin/squid -k reconfig<br /><br />通过crontab每天0Ҏ(gu)?轮@日志Q?br />0 0 * * * (/usr/local/squid/sbin/squid -k rotate) <br /><br /><h2>?Q如何在IIS上利用PHP支持PATH_INFO</h2>PHP的ISAPI模式安装备忘Q只试成 php-4.2.3-Win32<br /><br />解包目录<br />========<br />php-4.2.3-Win32.zip c:\php<br /><br />PHP.INI初始化文?br />=================<br />复制Qc:\php\php.ini-dist ?c:\winnt\php.ini<br /><br />配置文g兌<br />============<br />按照install.txt中的说明配置文g兌<br /><br />q行库文?br />==========<br />复制 c:\php\php4ts.dll ?c:\winnt\system32\php4ts.dll<br /><br />q样q行后:(x)?x)发现php把PATH_INFO映射C物理路径?br />Warning: Unknown(C:\CheDong\Downloads\ariadne\www\test.php\path): failed to create stream: No such file or directory in Unknown on line 0<br /><br />Warning: Unknown(): Failed opening 'C:\CheDong\Downloads\ariadne\www\test.php\path' for inclusion (include_path='.;c:\php4\pear') in Unknown on line 0<br /><br />安装ariadne的PATCH<br />==================<br />停止IIS服务<br />net stop iisadmin<br />ftp://ftp.muze.nl/pub/ariadne/win/iis/php-4.2.3/php4isapi.dll<br />覆盖原有的c:\php\sapi\php4isapi.dll<br /><br />注:(x)ariadne是一个基于PATH_INFO的内容发布系l?br /><br />PHP 4.3.2 RC2中CGI模式的PATH_INFO已经修正Q照常安装即可?br /><a class="weblink" ><font color="#002c99">www.best-code.com</font></a><br /><p>参考资料:(x)<br /></p><p>CMS行业观察<br /><a href="javascript:if(confirm('http://www.cmswatch.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.cmswatch.com/'" tppabs="http://www.cmswatch.com/"><font color="#002c99">http://www.cmswatch.com</font></a><br /></p><p>CMS讨论邮g列表<br /><a href="javascript:if(confirm('http://www.cms-list.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.cms-list.org/'" tppabs="http://www.cms-list.org/"><font color="#002c99">http://www.cms-list.org</font></a><br /></p><p>一个基于PATH_INFO的开源内容管理系l?br /><a href="javascript:if(confirm('http://typo3.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://typo3.com/'" tppabs="http://typo3.com/"><font color="#002c99">http://typo3.com/</font></a></p><p>商业的和开源CMS目列表Q?br /><a href="javascript:if(confirm('http://directory.google.com/Top/Computers/Software/Internet/Site_Management/Content_Management/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://directory.google.com/Top/Computers/Software/Internet/Site_Management/Content_Management/'" tppabs="http://directory.google.com/Top/Computers/Software/Internet/Site_Management/Content_Management/"><font color="#002c99">http://directory.google.com/Top/Computers/Software/Internet/Site_Management/Content_Management/</font></a><br /></p><p>搜烦引擎友好的URL设计<br /><a href="javascript:if(confirm('http://www.sitepoint.com/article/485 \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.sitepoint.com/article/485'" tppabs="http://www.sitepoint.com/article/485"><font color="#002c99">http://www.sitepoint.com/article/485</font></a><br />说不定这个URL原来是articel.php?id=485<br /></p><p>HTTP代理~存<br /><a href="javascript:if(confirm('http://vancouver-webpages.com/proxy.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://vancouver-webpages.com/proxy.html'" tppabs="http://vancouver-webpages.com/proxy.html"><font color="#002c99">http://vancouver-webpages.com/proxy.html</font></a></p><p>可缓存的面设计<br /><a href="javascript:if(confirm('http://linux.oreillynet.com/pub/a/linux/2002/02/28/cachefriendly.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://linux.oreillynet.com/pub/a/linux/2002/02/28/cachefriendly.html'" tppabs="http://linux.oreillynet.com/pub/a/linux/2002/02/28/cachefriendly.html"><font color="#002c99">http://linux.oreillynet.com/pub/a/linux/2002/02/28/cachefriendly.html</font></a><br /></p><p>相关RFC文档Q?br /></p><ul><li><a href="javascript:if(confirm('http://www.w3.org/Protocols/rfc2616/rfc2616.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.w3.org/Protocols/rfc2616/rfc2616.html'" tppabs="http://www.w3.org/Protocols/rfc2616/rfc2616.html"><font color="#002c99">RFC 2616</font></a>: <ul><li><a href="javascript:if(confirm('http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13'" tppabs="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13"><font color="#002c99">section 13</font></a> (Caching) </li><li><a href="javascript:if(confirm('http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9'" tppabs="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9"><font color="#002c99">section 14.9</font></a> (Cache-Control header) </li><li><a href="javascript:if(confirm('http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21'" tppabs="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21"><font color="#002c99">section 14.21</font></a> (Expires header) </li><li><a href="javascript:if(confirm('http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32'" tppabs="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32"><font color="#002c99">section 14.32</font></a> (Pragma: no-cache) is important if you are interacting with HTTP/1.0 caches </li><li><a href="javascript:if(confirm('http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29'" tppabs="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29"><font color="#002c99">section 14.29</font></a> (Last-Modified) is the most common validation method </li><li><a href="javascript:if(confirm('http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11'" tppabs="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11"><font color="#002c99">section 3.11</font></a> (Entity Tags) covers the extra validation method </li></ul></li></ul><p></p><p>可缓存性检查:(x)<br /><a href="javascript:if(confirm('http://www.web-caching.com/cacheability.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.web-caching.com/cacheability.html'" tppabs="http://www.web-caching.com/cacheability.html"><font color="#002c99">http://www.web-caching.com/cacheability.html</font></a><br /></p><p>URL Rewrite文档Q?br /><a href="javascript:if(confirm('http://www.isapirewrite.com/docs/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.isapirewrite.com/docs/'" tppabs="http://www.isapirewrite.com/docs/"><font color="#002c99">http://www.isapirewrite.com/docs/</font></a><br /><a href="javascript:if(confirm('http://httpd.apache.org/docs/mod/mod_rewrite.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://httpd.apache.org/docs/mod/mod_rewrite.html'" tppabs="http://httpd.apache.org/docs/mod/mod_rewrite.html"><font color="#002c99">http://httpd.apache.org/docs/mod/mod_rewrite.html</font></a><br /><a href="javascript:if(confirm('http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html'" tppabs="http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html"><font color="#002c99">http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html</font></a><br /></p><p>原文出处Q?lt;a >http://www.chedong.com/tech/cms.html</a><br /></p><img src ="http://www.tkk7.com/rendong/aggbug/61942.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/rendong/" target="_blank">rendong</a> 2006-08-05 15:02 <a href="http://www.tkk7.com/rendong/archive/2006/08/05/61942.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 什么是robots.txt文g? Q{www.best-code.com Q?/title><link>http://www.tkk7.com/rendong/archive/2006/08/05/61937.html</link><dc:creator>rendong</dc:creator><author>rendong</author><pubDate>Sat, 05 Aug 2006 06:54:00 GMT</pubDate><guid>http://www.tkk7.com/rendong/archive/2006/08/05/61937.html</guid><wfw:comment>http://www.tkk7.com/rendong/comments/61937.html</wfw:comment><comments>http://www.tkk7.com/rendong/archive/2006/08/05/61937.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/rendong/comments/commentRss/61937.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/rendong/services/trackbacks/61937.html</trackback:ping><description><![CDATA[1.  什么是robots.txt文g? <br />        搜烦引擎通过一U程序robotQ又UspiderQ,自动讉K互联|上的网ƈ获取|页信息?<br />        (zhn)可以在(zhn)的|站中创Z个纯文本文grobots.txtQ在q个文g中声明该|站中不惌robot讉K的部分,q样Q该|站的部分或全部内容可以不被搜索引擎收录了Q或者指定搜索引擎只收录指定的内宏V?<br /><span id="xjsnvcp" class="weblink"><a >www.best-code.com</a></span><br />         <br />    2.  robots.txt文g攑֜哪里? <br />        robots.txt文g应该攑֜|站根目录下。D例来_(d)当  robots讉K一个网站(比如http://www.abc.comQ时Q首先会(x)(g)查该|站中是否存在http:  //www.abc.com/robots.txtq个文gQ如果机器h扑ֈq个文gQ它?yu)׃?x)Ҏ(gu)q个文g的内容,来确定它讉K权限的范围?<br />        |站  URL        相应的  robots.txt的  URL <br />        http://www.w3.org/        http://www.w3.org/robots.txt <br />        http://www.w3.org:80/        http://www.w3.org:80/robots.txt <br />        http://www.w3.org:1234/        http://www.w3.org:1234/robots.txt <br />        http://w3.org/        http://w3.org/robots.txt <br /><br />         <br />    3.  robots.txt文g的格?<br />        "robots.txt"文g包含一条或更多的记录,q些记录通过I分开Q以CR,CR/NL,  or  NL作ؓ(f)l束W)Q每一条记录的格式如下所C:(x) <br />        "<field>:<optionalspace><value><optionalspace>"?<br /><br />        在该文g中可以?q行注解Q具体用方法和UNIX中的惯例一栗该文g中的记录通常以一行或多行User-agent开始,后面加上若干Disallow?详细情况如下Q?<br /><br />        User-agent: <br />          该项的值用于描q搜索引擎robot的名字,?robots.txt"文g中,如果有多条User-agent记录说明有多个robot?x)受到该协议的限Ӟ对该文g来说Q至要有一条User-agent记录。如果该的D?Q则该协议对M机器人均有效Q在"robots.txt"文g中,  "User-agent:*"q样的记录只能有一条?<br /><br />        Disallow: <br />          该项的值用于描qC希望被访问到的一个URLQ这个  URL可以是一条完整的路径Q也可以是部分的QQ何以Disallow开头的URL均不?x)被robot讉K到。例?Disallow:/help"对 ?help.html  ?help/index.html都不允许搜烦引擎讉KQ?Disallow:/help/"则允许robot讉K/help.htmlQ而不能访问 ?help/index.html。Q何一条Disallow记录为空Q说明该|站的所有部分都允许被访问,?/robots.txt"文g中,臛_要有一条Disallow记录。如?/robots.txt"是一个空文gQ则对于所有的搜烦引擎robotQ该|站都是开攄?<br /><br />    4.  robots.txt文g用法举例 <br />        ?.  止所有搜索引擎访问网站的M部分        User-agent:  * <br />        Disallow:  / <br />        ?.  允许所有的robot讉K  (或者也可以Z个空文g  "/robots.txt"  file)        User-agent:  * <br />        Disallow: <br />        ?.  止某个搜烦引擎的访问        User-agent:  BadBot <br />        Disallow:  / <br />        ?.  允许某个搜烦引擎的访问        User-agent:  baiduspider <br />        Disallow: <br /><br />        User-agent:  * <br />        Disallow:  / <br />        ?.一个简单例?<br />          在这个例子中Q该|站有三个目录对搜烦引擎的访问做了限Ӟx索引擎不?x)访问这三个目录?<br />          需要注意的是对每一个目录必d开声明Q而不要写成 ?Disallow:  /cgi-bin/  /tmp/"?<br />          User-agent:后的*hҎ(gu)的含义,代表"any  robot"Q所以在该文件中不能?Disallow:  /tmp/*"  or  "Disallow:*.gif"q样的记录出?        User-agent:  * <br />        Disallow:  /cgi-bin/ <br />        Disallow:  /tmp/ <br />        Disallow:  /~joe/ <br />         <br /><br />    5.  robots.txt文g参考资?<br />        robots.txt文g的更具体讄,请参看以下链接:(x) <br />        ·  Web  Server  Administrator's  Guide  to  the  Robots  Exclusion  Protocol <br />        ·  HTML  Author's  Guide  to  the  Robots  Exclusion  Protocol <br />        ·  The  original  1994  protocol  description,  as  currently  deployed <br />        ·  The  revised  Internet-Draft  specification,  which  is  not  yet  completed  or  implemented <br />    6.  各搜索引擎的robot   <br />        GoogleQCrawled  by  Googlebot/2.1  (+http://www.google.com/bot.html) <br />         <br />        BaiduQCrawled  by  Baiduspider+(+http://www.baidu.com/search/spider.htm) <br /><br />        YahooQCrawled  by  Mozilla/5.0  (compatible;  Yahoo!  Slurp  China <br /><br />        MSNQ  Crawled  by  msnbot/1.0  (+http://search.msn.com/msnbot.htm) <br /><br />        SogouQ  Crawled  by  sogou  spider <br /><br />        中搜QCrawled  by  User-Agent:  Mozilla/4.0  (compatible;  MSIE  5.5;  Windows  NT  5.0) <br /><a class="weblink" ><font color="#002c99">www.best-code.com</font></a><br />        sinaQCrawled  by  Mozilla/4.0(compatible;MSIE  6.0;Windows  NT  5.0;.NET  CLR  1.1.432) <br /><img src ="http://www.tkk7.com/rendong/aggbug/61937.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/rendong/" target="_blank">rendong</a> 2006-08-05 14:54 <a href="http://www.tkk7.com/rendong/archive/2006/08/05/61937.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Meta的用?Q{http://www.best-code.com/favorite/articles/81.aspxQ?/title><link>http://www.tkk7.com/rendong/archive/2006/08/05/61936.html</link><dc:creator>rendong</dc:creator><author>rendong</author><pubDate>Sat, 05 Aug 2006 06:52:00 GMT</pubDate><guid>http://www.tkk7.com/rendong/archive/2006/08/05/61936.html</guid><wfw:comment>http://www.tkk7.com/rendong/comments/61936.html</wfw:comment><comments>http://www.tkk7.com/rendong/archive/2006/08/05/61936.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/rendong/comments/commentRss/61936.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/rendong/services/trackbacks/61936.html</trackback:ping><description><![CDATA[关于Meta的用?<br /><span id="cjbwsks" class="weblink"><a >www.best-code.com</a></span><br />meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta  标签用于|页?lt;head>?lt;/head>中,meta  标签的用处很多。meta  的属性有两种Qname和http-equiv。name属性主要用于描q网,对应于contentQ网内容)Q以便于搜烦引擎机器人查找、分c(目前几乎所有的搜烦引擎都用网上机器h自动查找meta值来l网分c)。这其中最重要的是descriptionQ站点在搜烦引擎上的描述Q和keywordsQ分cd键词Q,所以应该给每页加一个meta倹{比较常用的有以下几? <br /><br />name  属?<br /><br />    1?lt;meta  name="generator"  contect="">用以说明生成工具Q如Microsoft  FrontPage  4.0Q等Q?<br /><br />    2?lt;meta  name="keywords"  contect="">向搜索引擎说明你的网늚关键词; <br /><br />    3?lt;meta  name="description"  contect="">告诉搜烦引擎你的站点的主要内容; <br /><br />    4?lt;meta  name="author"  contect="你的姓名">告诉搜烦引擎你的站点的制作的作者; <br /><br />    5?lt;meta  name="robots"  contect="all|none|index|noindex|follow|nofollow"> <br /><br />  其中的属性说明如下:(x) <br /><br />  讑֮为allQ文件将被检索,且页面上的链接可以被查询Q?<br /><br />  讑֮为noneQ文件将不被(g)索,且页面上的链接不可以被查询; <br /><br />  讑֮为indexQ文件将被检索; <br /><br />  讑֮为followQ页面上的链接可以被查询Q?<br /><br />  讑֮为noindexQ文件将不被(g)索,但页面上的链接可以被查询Q?<br /><br />  讑֮为nofollowQ文件将不被(g)索,面上的链接可以被查询?<br /><br />http-equiv属?<br /><br />    1?lt;meta  http-equiv="Content-Type"  contect="text/html";charset=gb_2312-80"> <br /><br />  和 ?lt;meta  http-equiv="Content-Language"  contect="zh-CN">用以说明主页制作所使用的文字以?qing)语aQ?<br /><br />  又如英文是ISO-8859-1字符集,q有BIG5、utf-8、shift-Jis、Euc、Koi8-2{字W集Q?<br /><br />    2?lt;meta  http-equiv="Refresh"  contect="n;url=http://yourlink">定时让网在指定的时间n内,跌{到页面http;//yourlinkQ?<br /><br />    3?lt;meta  http-equiv="Expires"  contect="Mon,12  May  2001  00:20:00  GMT">可以用于讑֮|页的到期时_(d)一旦过期则必须到服务器上重新调用。需要注意的是必M用GMT旉格式Q?<br /><br />    4?lt;meta  http-equiv="Pragma"  contect="no-cache">是用于设定禁止浏览器从本地机的缓存中调阅面内容Q设定后一旦离开|页无法从Cache中再调出Q?<br /><br />    5?lt;meta  http-equiv="set-cookie"  contect="Mon,12  May  2001  00:20:00  GMT">cookie讑֮Q如果网过期,存盘的cookie被删除。需要注意的也是必须使用GMT旉格式Q?<br /><br />    6?lt;meta  http-equiv="Pics-label"  contect="">|页{评定Q在IE的internet选项中有一内容设|,可以防止览一些受限制的网站,而网站的限制U别是通过meta属性来讄的; <br /><br />    7?lt;meta  http-equiv="windows-Target"  contect="_top">强制面在当前窗口中以独立页面显C,可以防止自己的网被别h当作一个frame调用; <br /><br />    8?lt;meta  http-equiv="Page-Enter"  contect="revealTrans(duration=10,transtion=50)">?lt;meta  http-equiv="Page-Exit"  contect="revealTrans(duration=20Qtranstion=6)">讑֮q入和离开面时的Ҏ(gu)效果Q这个功能即FrontPage中的“格?|页q渡”,不过所加的面不能够是一个frame面?<br /><br />关于robots.txt的讲?<br /><br />1.什么是robots.txt文g?   <br />搜烦引擎通过一U程序robotQ又UspiderQ,自动讉K互联|上的网ƈ获取|页信息。 ?<br />(zhn)可以在(zhn)的|站中创Z个纯文本文grobots.txtQ在q个文g中声明该|站中不惌robot讉K的部分,q样Q该|站的部分或全部内容可以不被搜索引擎收录了Q或者指定搜索引擎只收录指定的内宏V?<br /><br />2.robots.txt文g攑֜哪里?   <br />robots.txt文g应该攑֜|站根目录下。D例来_(d)当robots讉K一个网站(比如http://www.abc.comQ时Q首先会(x)(g)查该|站中是否存在http://www.abc.com/robots.txt  q个文gQ如果机器h扑ֈq个文gQ它?yu)׃?x)Ҏ(gu)q个文g的内容,来确定它讉K权限的范围?<br /><br /><br />1.robots.txt文g的格?   <br /><br />"robots.txt"文g包含一条或更多的记录,q些记录通过I分开Q以CR,CR/NL,  or  NL作ؓ(f)l束W)Q每一条记录的格式如下所C:(x) <br />"<field>lt;optionalspace><value><optionalspace>"?<br /><br />在该文g中可以?q行注解Q具体用方法和UNIX中的惯例一栗该文g中的记录通常以一行或多行User-agent开始,后面加上若干Disallow?详细情况如下Q?<br /><br />User-agent: <br />  该项的值用于描q搜索引擎robot的名字,?robots.txt"文g中,如果有多条User-agent记录说明有多个robot?x)受到该协议的限Ӟ对该文g来说Q至要有一条User-agent记录。如果该的D?Q则该协议对M机器人均有效Q在"robots.txt"文g中,"User-agent:*"q样的记录只能有一条?<br /><a class="weblink" ><font color="#002c99">www.best-code.com</font></a><br />Disallow: <br />  该项的值用于描qC希望被访问到的一个URLQ这个URL可以是一条完整的路径Q也可以是部分的QQ何以Disallow开头的URL均不?x)被robot讉K到。例?Disallow:/help"?help.html  ?help/index.html都不允许搜烦引擎讉KQ?Disallow:/help/"则允许robot讉K/help.htmlQ而不能访?help/index.html。Q何一条Disallow记录为空Q说明该|站的所有部分都允许被访问,?/robots.txt"文g中,臛_要有一条Disallow记录。如?/robots.txt"是一个空文gQ则对于所有的搜烦引擎robotQ该|站都是开攄?<br /><img src ="http://www.tkk7.com/rendong/aggbug/61936.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/rendong/" target="_blank">rendong</a> 2006-08-05 14:52 <a href="http://www.tkk7.com/rendong/archive/2006/08/05/61936.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用robots.txt的注意事(转www.best-code.com Q?/title><link>http://www.tkk7.com/rendong/archive/2006/08/05/61935.html</link><dc:creator>rendong</dc:creator><author>rendong</author><pubDate>Sat, 05 Aug 2006 06:50:00 GMT</pubDate><guid>http://www.tkk7.com/rendong/archive/2006/08/05/61935.html</guid><wfw:comment>http://www.tkk7.com/rendong/comments/61935.html</wfw:comment><comments>http://www.tkk7.com/rendong/archive/2006/08/05/61935.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/rendong/comments/commentRss/61935.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/rendong/services/trackbacks/61935.html</trackback:ping><description><![CDATA[使用robots.txt的注意事?<br /><span id="kcozdpn" class="weblink"><a >www.best-code.com</a></span><br />robots.txt的创建很单,只需讄User-agent与Disallow两项内容Q其中User-agent设|特定的搜烦引擎SpiderQDisallow设定不允许Spider抓取和烦引的内容。尽如此,W者却常常见一些设|不当的例子Q在此把robots.txt有关的注意事介l一下:(x) <br /><br />robots.txt文g <br />  robots.txt只能存放于网站的根目录下Q置于除此之外的M地方均不?x)被Spider发现?<br /><br />  每个|站Q或每个域名Q包括子域名Q,只能有一个robots.txt?<br /><br />  文g名“robots.txt”ؓ(f)写字母Q其他如Robots.txt或robots.Txt是不正确的,命名错误会(x)被Spider忽略?<br /><br />  正如上篇文章中介l的QSpider在网站内找不到robots.txt时将?x)被重定向?04  错误面Q这便有可能ȝSpider抓取和收录页面。虽然这q不一定会(x)发生Q但很多时候我们没必要冒这L(fng)风险Q一般来_(d)即我们对网站的所有内定w没有限制Q对所有的搜烦引擎Spider  都欢q,最好也在根目录下创Z个robots.txt文gQ?<br /><br />User-agent:  * <br />Disallow: <br /><br />robots.txt的语法规?<br />  在Disallow中使用写字母Q即文g名和目录名用小写字母,特别在对大小写敏感的Unix下更要注意?<br /><br />  robots.txt惟一支持的通配W是在User-agent使用的?”,其代表所有的Spider。除此之外,别的通配W均不可用。这斚w的错误常见于在文件名或目录名中用通配W?<br /><br />  robots.txt的限定项 <br /><br />  在User-agent和Disallow的讑֮中,每行只允许有一个设定|同时Q注意不要有I。至于行敎ͼ则没有限Ӟ理论上说可以Ҏ(gu)需要创建具有无数行的robots.txt?<br /><br />  下面x一个错误的例子 <br /><br />User-agent:  * <br />Disallow:  /dir1/  /dir2/  /dir3/ <br /><br />  正确讄应ؓ(f)Q?<br /><br />User-agent:  * <br />Disallow:  /dir1/ <br />Disallow:  /dir2/ <br />Disallow:  /dir3/ <br /><br />  robots.txt中的文g与目?<br /><br />  既定某个文g拒绝索引Ӟ格式为文件名(包括扩展?Q其后无?”,而限定目录时Q则需在目录名后加?”。如下面的示例:(x) <br /><br />User-agent:  * <br />Disallow:  /file.html <br />Disallow:  /dir/ <br /><br />  特别注意的是Q不要省略掉目录名后的?”,不然QSpider便极有可能误ȝ应的讄?<br /><br />  robots.txt中限定项的顺?<br /><br />  L(fng)下方的示例:(x) <br /><br />User-agent:  * <br />Disallow:  / <br />User-agent:  Googlebot <br />Disallow: <br /><br />  该设定本意是惛_许Google讉K所有页面,同时止其他Spider的访问。但在这L(fng)讄下,Googlebot在读取前2行后便会(x)d|站Q后面对其的“解”完全失M意义。正的格式应ؓ(f)Q?<br /><br />User-agent:  Googlebot <br />Disallow: <br />User-agent:  * <br />Disallow:  / <br /><br />  robots.txt中的注释 <br /><br />  管在robots.txt的标准中Q可以在限定的后面使用?”添加注释,如下面的例子 <br /><br />User-agent:  Googlebot  #q是对Google的设|?<br />Disallow: <br /><br />  但很多研I与试表明Q不Spider对这h式的解读存在问题。ؓ(f)保其能更好地工作,最好采用如下设|:(x) <br /><a class="weblink" ><font color="#002c99">www.best-code.com</font></a><br />#q是对Google的设|?<br />User-agent:  Googlebot <br />Disallow: <br /><img src ="http://www.tkk7.com/rendong/aggbug/61935.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/rendong/" target="_blank">rendong</a> 2006-08-05 14:50 <a href="http://www.tkk7.com/rendong/archive/2006/08/05/61935.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何提高|站在Google中的排名Q{http://www.chedong.com/tech/google.html">http://www.chedong.com/tech/google.htmlQ?/title><link>http://www.tkk7.com/rendong/archive/2006/08/05/61934.html</link><dc:creator>rendong</dc:creator><author>rendong</author><pubDate>Sat, 05 Aug 2006 06:49:00 GMT</pubDate><guid>http://www.tkk7.com/rendong/archive/2006/08/05/61934.html</guid><wfw:comment>http://www.tkk7.com/rendong/comments/61934.html</wfw:comment><comments>http://www.tkk7.com/rendong/archive/2006/08/05/61934.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/rendong/comments/commentRss/61934.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/rendong/services/trackbacks/61934.html</trackback:ping><description><![CDATA[h1>如何提高|站在Google中的排名<br />    ——面向搜索引擎的|站设计 <h1></h1><p>作者:(x) 车东 Email: chedongATbigfoot.com/chedongATchedong.com</p><p>写于Q?003/01 最后更斎ͼ(x) <script language="JavaScript"><![CDATA[ocument.write(document.lastModified)]]></script> 08/05/2006 14:47:05</p><p>版权声明Q可以Q意{载,转蝲时请务必以超链接形式标明文章原始出处和作者信息及(qing)本声?br /><a tppabs="http://www.chedong.com/tech/google.html"><font color="#002c99">http://www.chedong.com/tech/google.html</font></a></p><p>关键词:(x)Google PageRank "link popularity" "website promotion" "optimization for search engine" </p><p>内容摘要Q(注意Q这个网站设计本w就利用了其中一些方法)?br />|站设计中面向搜索引擎的优化注意事项Q?/p><ul><li><a ><font color="#002c99">链接引用的重要性;</font></a></li><li><a ><font color="#002c99">如何H出关键词:(x)|页标题、主题的设计Q?/font></a></li><li><a ><font color="#002c99">面?qing)站点结构设计注意事?/font></a></li><li><a ><font color="#002c99">以及(qing)站点讉Kl计的重要性等Q?/font></a></li></ul><p>谁不惌q|站在Google的搜索结果重排名靠前呢,但你的网站设计是Search Engine Ready的吗Q?/p><p><b>什么是PageRank</b></p><p>Google{新一带搜索引擎的优势之一在于不仅索引量很大,而且q将最好的l果排在搜烦l果的最前面Q具体的原理可以参?a href="javascript:if(confirm('http://www.kusastro.kyoto-u.ac.jp/%7Ebaba/wais/pagerank.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.kusastro.kyoto-u.ac.jp/%7Ebaba/wais/pagerank.html'" tppabs="http://www.kusastro.kyoto-u.ac.jp/%7Ebaba/wais/pagerank.html"><font color="#002c99">Google の秘?- PageRank 徹底解説</font></a>一文,PageRank单的说类gU技论文中的引用机制Q谁的论文被引用ơ数多,谁就是权威。在互联|上PageRank是Z|页中相互链接关pȝ分析得出的,由此引出W一个要点:(x)</p><p><b><a name="link">链接是一?/a></b></p><p>在互联网的vz中Q最重要的就是互联互通,不被其他|站引用的网站就是“信息孤岛”。“酒好也怕؜子深”,也许q话说v来有点像垃圾邮gq告Q但事实是q样。所以如果做|站的目的不是孤芌赏,需要积极的推广自己的网站。通过搜烦引擎推广自己需要注意以下几个方面:(x)</p><ol><li>以量取胜Q不一定加入大型网站的分类目录才是|站推广Q来自其他网站的M反相链接都是有用?br />|站推广比较l典的方式就是加入比较大型门L(fng)站的分类目录Q比如:(x)<a href="javascript:if(confirm('http://www.yahoo.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.yahoo.com/'" tppabs="http://www.yahoo.com/"><font color="#002c99">Yahoo!</font></a>Q?a href="javascript:if(confirm('http://dmoz.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://dmoz.org/'" tppabs="http://dmoz.org/"><font color="#002c99">dmoz.org</font></a>{。其实这里有一个误区:(x)不一定非要加入大型网站的分类目录才是|站推广Q因为现在搜索引擎已l不再只是网站目录的索引Q而是更全面的|页索引Q所以无论来自其他网站Q何地方的反相链接都是非常有h(hun)值的Q哪怕是出现在新L道,论坛Q邮件列表归档中。因此在往很多大型站点的邮件列表发邮gӞ一定注意在自己的签名中加上自己|站的地址?br />BloggerQWeblog的简Uͼ们也许最深刻地理解了“链接就是一切”这句话的含义,׃Blog的内容之间有大量的相互链接,因此最l常被引用的Blog面在搜索引擎中的排名往往比一些大型商业网站的面q要高?br /></li><li>以质取胜Q被PageRank高的|站引用能更快地提高PageRank<br />数量只是关键因素之一Q来自PageRank高的面的链接还能更快的提高被链接目标的PageRankQ以我的个h|站ZQ我没有加入M分类目录Q只是将一些文章投E在?a href="javascript:if(confirm('http://www.zdnet.com.cn/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.zdnet.com.cn/'" tppabs="http://www.zdnet.com.cn/"><font color="#002c99">ZDNet中国</font></a>上,׃面上有文章出处链接Q相应网和|站整体的PageRankq了一D|间后有了很大的提升。有时候被什么样的网站引用有时候比引用ơ数多更重要。这里我要特别感谢的是,当时<a href="javascript:if(confirm('http://www.zdnet.com.cn/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.zdnet.com.cn/'" tppabs="http://www.zdnet.com.cn/"><font color="#002c99">ZDNet中国</font></a>是唯一遵@了我的版权声明的要求表明了文章出处,q且有反盔R接的|站?br /></li><li>了解搜烦引擎?价D"Q?br /><a tppabs="http://www.chedong.com/tech/lucene.html"><font color="#002c99">Lucene?/font></a>q篇文章?a href="javascript:if(confirm('http://jakarta.apache.org/lucene/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://jakarta.apache.org/lucene/'" tppabs="http://jakarta.apache.org/lucene/"><font color="#002c99">Jakarta.apache.org的lucene目</font></a>引用以后Q这文章就成ؓ(f)了所有页面中PageRank最高的面Q在<a href="javascript:if(confirm('http://toolbar.google.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://toolbar.google.com/'" tppabs="http://toolbar.google.com/"><font color="#002c99">Google工具?/font></a>上显C是6/10Q,而Google深厚的学院气氛让我一直怀疑他们对 .edu{非功利站点有特别加?:-)Q毕?org .edu才代表了互联|精的实质Q知识的׃n?br />但更合理的解释是Q?org很多都是开放技术^台的开发者,他们?x)在首页q样的地方加入Powered By Apache, Power by FreeBSD之类的链接表C对其他开源^台的重Q所以象<a href="javascript:if(confirm('http://www.apache.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.apache.org/'" tppabs="http://www.apache.org/"><font color="#002c99">Apache</font></a>, <a href="javascript:if(confirm('http://www.php.net/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.php.net/'" tppabs="http://www.php.net/"><font color="#002c99">PHP</font></a>, <a href="javascript:if(confirm('http://www.freebsd.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.freebsd.org/'" tppabs="http://www.freebsd.org/"><font color="#002c99">FreeBSD</font></a>q样的开源站点在GOOGLE中都有非帔R的PageRank。而在.eduq些站点中,很多都是学术性比较强的文档,以超链接形式标明参考文献的出处已经成ؓ(f)一U习(fn)惯,而这也无疑正是PageRank最好的依据?br /><span style="FONT-STYLE: italic">注意Q千万不要通过Link Farm提高自n的站Ҏ(gu)名:(x)Google?x)惩|那些主动链接到Link Farm站点以提高自w排名站点,相应站点的页面将不会(x)被收入到索引中。但如果你的面被别的Link Farm链接了也不必担心Q因U被动的链接是不?x)被惩罚的?/span><br /></li></ol><p>另外在推q自q站之前也?dng)R先需要了解自q站目前在一些搜索引擎中的知名度Q这里我做了个小工具可以用于q一目的Q?br /><a href="javascript:if(confirm('http://www.chedong.com/linkPopCheck.php \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.chedong.com/linkPopCheck.php'" tppabs="http://www.chedong.com/linkPopCheck.php"><font color="#002c99">http://www.chedong.com/linkPopCheck.php</font></a>?br />原理非常单,可以参考如何评L(fng)站的人气Q?a tppabs="http://www.chedong.com/tech/link_pop_check.html"><font color="#002c99">http://www.chedong.com/tech/link_pop_check.html</font></a>一文?/p><p>|站推广只是手段Q如何突出内宏V让需要相关信息的用户能够快的找C的网站才是目的,PageRank高ƈ不代表像Yahoo!q样的门L(fng)点就能,因ؓ(f)搜烦引擎的结果是搜烦关键词在面中的匚w度和面的PageRank相结合的排名l果。因此第二个要点Q?/p><p><a name="key"><b>如何H出关键?/b></a></p><ol><li>不要I着标题Q空着<title></title>无异于浪费了最有h(hun)值的一块阵圎ͼ<br />传统的页面中QHTML面中会(x)有类g下的隐含信息Q用于说明当前网늚主要内容关键字:(x)<br /><header><br />    <meta name="keyword" content="mp3 download music..."><br /></header><br />后来׃q种人工d关键词的方式被滥用,大量|页中ؓ(f)了提高被搜烦引擎命中的概率,l常d一些和实际|页内容无关的热门关键比如:(x)“music mp3 download”等Q所以新一代的搜烦引擎已经不再兛_面头文件中的h工meta keyword声明Q而页面标题在搜烦引擎的关键词的命中命中过E中往往有着更高的比重,如果一个关键词在标题中命中?x)比在页面中命中有更高的得分Q从而在相应的搜索结果排名中更靠前?br /></li><li>标题长度和内容:(x)不要q长Q一般在40个字W以内,q充分突出关键词的比重;<br />如果更长的标题搜索引擎一般会(x)忽略掉,所以要可能将主要关键词放在标题靠前的位置。省略掉不必要的形容词吧Q毕竟用户主要通过名词来找到需要的内容。标题内容:(x)量用一些别人可以通过关键词找到的字眼Q也别太q头Q如果标题中的字Dq?半内容中都没有,有可能被搜烦引擎排除出烦引)Q因此基于web日志中来自其他搜索引擎的关键词查询统计非常必要?br /></li><li>如果|页很多的话Q尽量用不同的|页标题Q争取让自己|站的内Ҏ(gu)多的q入搜烦引擎索引范围Q?br />因ؓ(f)搜烦引擎?x)根据页面内容的怼度把一些内容当成重复页面排除出索引范围Q?br /><a href="javascript:if(confirm('http://www.chedong.com/phpMan.php \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.chedong.com/phpMan.php'" tppabs="http://www.chedong.com/phpMan.php"><font color="#002c99">http://www.chedong.com/phpMan.php</font></a>是我的网站上的一个小应用Q一个web界面的unix命o(h)手册Qman pageQ,在以前的设计中所有动态页面用的都是同样的标题:(x)"phpMan: man page /perldoc /info page web interface" QGoogle索引了大U?000多个面Q后来我页面标题改成了"phpMan:  [命o(h)名]"q样的格式,比如Q?phpMan: ls"Q这样大部分动态页面的标题都不一样了Q一个月后Google从这个页面入口烦引了大约6000个页面。因此,如果|站中很多网都使用相同的标题,比如Q“新闻频道”,“论坛”,q些面中很大一部分׃(x)被排重机制忽略掉?br /></li><li>除了<title></title>外,q可以用<h1></h1>标题行突出内容主题,加强标题的效果;<br />在我的网站设计中Q我?x)把?lt;h1>[标题]</h1>q样的模板把标题H出昄Q而不是通过改变字体的方式突出标题?</li></ol><p><b><a name="web">其他|站设计提示</a></b></p><ol><li>量使用静态网:(x)目前能够像Google一样对动态网进行烦引的搜烦引擎q比较少Q而同样内容的动态网其权重比静态网也要低很多。因此无Z效率上讲q是方便搜烦引擎收录Q用内容发布系l将|站内容发布成静态网都是非常必要的?br />比如Qhttp://www.chedong.com/phpMan.php/man/intro/3<br />肯定?http://www.chedong.com/phpMan.php?mode=man&parameter=intro&section=3<br />更容易进入搜索引擎的索引。而且在URL中的命中有时候比在标题中q能H出关键词?br /></li><li>表现和内容的分离Q“绿艜y网?br />|页中的javascript和css可能和|页分离Q一斚w提高代码重用度(也方侉K面缓存)Q另外一斚wQ由于有效内容占|页长度的百分比高,也能提高相关关键词在面中的比重。MQ应该鼓励遵循w3c的规范,使用更规范的XHTML和XML作ؓ(f)昄格式便于内容更长旉的保存?br /></li><li>让所有的面都有能够快速入口:(x)<a href="javascript:if(confirm('http://www.chedong.com/sitemap.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.chedong.com/sitemap.html'" tppabs="http://www.chedong.com/sitemap.html"><font color="#002c99">站点地图</font></a>Q方便网늈虫(spiderQ快速遍历网站所有需要发布的内容。如果首就是用Flash或图片进入的话,无异于将搜烦引擎拒之门外Q除了UI设计的用户友好外Qspider friendly也是非常重要的? </li><li>保持|站自n的健P(x)l常利用<a href="javascript:if(confirm('http://home.snafu.de/tilman/xenulink.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://home.snafu.de/tilman/xenulink.html'" tppabs="http://home.snafu.de/tilman/xenulink.html"><font color="#002c99">坏链(g)查工?/font></a>(g)查网站中是否有死链?br /></li><li>保持|页内容/链接的稳定性和持久性:(x)在搜索引擎烦引中|页存在的历史也是一个比较重要的因素Q而且历史比较久的|页被链接的几率高。ؓ(f)了保证自q能够被比较持久的被其他|站的页面引用,如果自己|页中有链接更新Ӟ最好能保留旧的面q做好链接{向,以保持内容的q箋性。要知道Q把一个网站和内容在搜索引擎中的排名“培兠Z的很高是一仉怸Ҏ(gu)的事情,谁都不希望好不容易自q内容被别人找CQ点d是?04 面不存在”吧Q因此站点管理员对自w站点error.log的分析也是非常必要的?br /></li><li>文gcd因素QGoogle有对PDF, Word(Power Point, Excel), PS文档的烦引能力,׃q种文档的内Ҏ(gu)一般的HTMLl过了更多的整理Q学术h(hun)g般比较高Q所以这些类型的文档天生比一般的HTMLcd的文档PageRank要高。因此,对于比较重要的文档:(x)技术白皮书QFAQQ安装文档等使用PDF PS{高U格式存取,q样在搜索结果中也能获得比较靠前的位|? </li><li>“一人得道,鸡犬升天”:(x)常常能发现门L(fng)点的一条新d往比其他站点的首页排名q要靠前。因此一个站Ҏ(gu)MP(yng)ageRank提高了以后,往往自n一些ƈ不重要的内容也会(x)被同那些高PageRank的内容一起带入被搜烦引擎优先查询的列表中。这Ҏ(gu)些不是很合理Q因L(fng)帔R成很多大站点的邮g列表归档往往比其他站点的首页PageRankq要高?</li></ol><p><b><a name="stat">知己知彼——站点访问统?日志分析挖掘的重要?/a></b></p><p>|站设计不仅仅只是被动的q合搜烦引擎的烦引,更重要是充分利用搜烦引擎带来的流量进行更深层ơ的用户行ؓ(f)分析。目前,来自搜烦引擎关键词统计几乎是各种WEB日志分析工具的标准功能,怿商业日志l计工具在这斚w应该?x)有更强化的实现。WEB日志l计q个功能如此重要Q以至于新的RedHat 8中已l将日志分析工具webalizer作ؓ(f)标准的服务器配置应用之一?br /></p>以Apache/webalizerZQ具体的做法如下Q? <ol><li>记录讉K来源Q?br />在Apache配置文g中设|日志格式ؓ(f)combined格式Q这L(fng)日志中会(x)包含扩展信息Q其中有一个字D就是相应访问的转向来源QHTTP_REFERERQ如果用h从某个搜索引擎的搜烦l果中找C你的|页q点击过来,日志中记录的HTTP_REFERER是用户在搜索引擎结果页面的URLQ这个URL中包含了用户查询的关键词?br /></li><li>在webalizer中缺省配|针Ҏ(gu)索引擎的l计Q如何提取HTTP_REFERER中的关键?br />webalizer中缺省有针对yahoo, google{国际流行搜索引擎的查询格式Q这里我增加了针对国内门L(fng)点的搜烦引擎参数讄<br />SearchEngine yahoo.com p=<br />SearchEngine altavista.com q=<br />SearchEngine google.com q=<br />SearchEngine    sina.com.cn word=<br />SearchEngine    baidu.com   word=<br />SearchEngine    sohu.com    word=<br />SearchEngine    163.com q=<br /></li></ol><p>通过q样讄webalizerl计时就?x)将HTTP_REFERER中来自搜索引擎的URL中的keyword提取出来Q比如:(x)所有来自google.com链接中,参数q的值都被作ؓ(f)关键词统计下来:(x)Q从汇ȝ计结果中Q就可以发现用户是根据什么关键词扑ֈ你的ơ数Q以?qing)找C的用h感兴的是那些关键词{,q一步的Q在webalizer中有讄q可以将l计l果倒出成CSV格式的日志,便于以后导入数据库进行历史统计,做更深层ơ的数据挖掘{?/p><p>以前通过WEB日志的用户分析主要是单的Z日志中的讉K旉/IP地址来源{,很明显,Z搜烦引擎关键词的l计能得到的分析l果更丰富、更直观。因此,搜烦引擎服务的潜在商业h(hun)值几乎是不言而喻的,也许q也?a href="javascript:if(confirm('http://www.yahoo.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.yahoo.com/'" tppabs="http://www.yahoo.com/"><font color="#002c99">Yahoo!</font></a><a href="javascript:if(confirm('http://www.av.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.av.com/'" tppabs="http://www.av.com/"><font color="#002c99">Altavista</font></a>{传l搜索引擎网站在门户模式后重新开始重视搜索引擎市场的原因Q看?a href="javascript:if(confirm('http://www.google.com/press/zeitgeist2002.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.google.com/press/zeitgeist2002.html'" tppabs="http://www.google.com/press/zeitgeist2002.html"><font color="#002c99">Google的年度关键词l计</font></a>q道了Q在互联|上有谁比搜索引擎更了解用户对什么更感兴呢Q?br /></p><p>L(fng)本站的反盔R接统计:(x)<a href="javascript:if(confirm('http://www.chedong.com/log/2003_2.log \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.chedong.com/log/2003_2.log'" tppabs="http://www.chedong.com/log/2003_2.log"><font color="#002c99">http://www.chedong.com/log/2003_2.log</font></a><br />需要注意的是:(x)׃Google针对Windows 2000中的IE使用的是UTF-8方式的编码,因此很多l计有时候需要在UTF-8方式下查看才是正字W显C。从l计中能够感受到Q在使用水^比较高的IT开发h员中Google已经成ؓ(f)最常用的搜索引擎。而用百度的用户也已l大大超q了传统的搜狐,新浪{门L(fng)点,因此传统门户|站在搜索引擎上的优势将是非常脆q。而从技术的发展势来看Q以后还?x)有更多的利用互联网媒体做更深层ơ数据挖掘的服务模式出现Q?br /></p><p></p><p><a href="javascript:if(confirm('http://www.cnblog.org/blog \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.cnblog.org/blog#89372927'" tppabs="http://www.cnblog.org/blog#89372927"><span style="FONT-STYLE: italic"><font color="#002c99">转蝲自cnblog.org——“突发”文字可能揭C社?x)趋?/font></span></a><br style="FONT-STYLE: italic" /><br style="FONT-STYLE: italic" /><span style="FONT-STYLE: italic">在“新U学家?New Scientist)在线杂志上,公布了康奈尔大学的一个新研究成果Q引人注目,也许与Google 收购Pyra 的动机有兟?/span><br style="FONT-STYLE: italic" /><br style="FONT-STYLE: italic" /><span style="FONT-STYLE: italic">q所大学的计机U学?Jon Klenberg 开发了一个计机法Q能够识别一文章中某些文字的“突发”增长,而且他发玎ͼq些“突发”增长的文字可以用来快速识别最新的势和热炚w题,因此能够更有效地{选重要信息。过d多搜索技术都采用了简单计文?词组出现频率的方法,却忽略了文字使用增加的速率?/span><br style="FONT-STYLE: italic" /><br style="FONT-STYLE: italic" /><span style="FONT-STYLE: italic">Jon 特别指出Q这U方法可以应用到大量Weblog上,以跟t社?x)趋势,q对商业应用也很有潜力。例如,q告商可以从成千上万的个人Blog 中快速找到潜在的需求风。而且只要Blog 覆盖话题范围_大(实际上发展趋势确实如此)Q这Ҏ(gu)术对政治、社?x)、文化和l济{领域也都会(x)有实际意义了?/span><br style="FONT-STYLE: italic" /><br style="FONT-STYLE: italic" /><span style="FONT-STYLE: italic">虽然Google 新闻的内部算法至今没有公开Q但是h们猜这U完全由机器所搜集的头条新d当不是Google搜烦引擎中惯用的鸽子法Q很可能与这U“突发”判断算法有兟뀂如此说来,Google收购Blog工具供应商的丑֊实q有更深层次的远见了?/span><br style="FONT-STYLE: italic" /><br style="FONT-STYLE: italic" /><span style="FONT-STYLE: italic">- NewScientist.com news, <a href="javascript:if(confirm('http://www.newscientist.com/news/news.jsp?id=ns99993405 \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.newscientist.com/news/news.jsp?id=ns99993405'" tppabs="http://www.newscientist.com/news/news.jsp?id=ns99993405"><font color="#002c99">Word 'bursts' may reveal online trends</font></a></span><br style="FONT-STYLE: italic" /><span style="FONT-STYLE: italic">- q没有写完这些介l,?SlashDot 上也看到了很多有兌个发现的讨论</span><br /><span id="qhcufty" class="weblink"><a >www.best-code.com</a></span><br /></p><p>参考资料:(x)</p><p>面向Google搜烦引擎的网站设计优?br /><a href="javascript:if(confirm('http://www.google-search-engine-optimization.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.google-search-engine-optimization.com/'" tppabs="http://www.google-search-engine-optimization.com/"><font color="#002c99">http://www.google-search-engine-optimization.com/</font></a></p><p>关于Google的十个神话:(x)<br /><a href="javascript:if(confirm('http://www.promotionbase.com/printTemplate.php?aid=971 \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.promotionbase.com/printTemplate.php?aid=971'" tppabs="http://www.promotionbase.com/printTemplate.php?aid=971"><font color="#002c99">http://www.promotionbase.com/printTemplate.php?aid=971</font></a><br /></p><p>如何评h(hun)一个网站的人气<br /><a tppabs="http://www.chedong.com/tech/link_pop_check.html"><font color="#002c99">http://www.chedong.com/tech/link_pop_check.html</font></a></p><p>如何提高|站在Google中的排名——面向搜索引擎的q告模式<br /><a tppabs="http://www.chedong.com/tech/google_ads.html"><font color="#002c99">http://www.chedong.com/tech/google_ads.html</font></a><br /></p><p>Measuring Link Popularity<br /><a href="javascript:if(confirm('http://searchenginewatch.com/webmasters/popularity.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://searchenginewatch.com/webmasters/popularity.html'" tppabs="http://searchenginewatch.com/webmasters/popularity.html"><font color="#002c99">http://searchenginewatch.com/webmasters/popularity.html</font></a></p><p>Google の秘?- PageRank 徹底解説<br /><a href="javascript:if(confirm('http://www.kusastro.kyoto-u.ac.jp/%7Ebaba/wais/pagerank.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.kusastro.kyoto-u.ac.jp/%7Ebaba/wais/pagerank.html'" tppabs="http://www.kusastro.kyoto-u.ac.jp/%7Ebaba/wais/pagerank.html"><font color="#002c99">http://www.kusastro.kyoto-u.ac.jp/~baba/wais/pagerank.html<br /></font></a>q篇文章是在?Google PageRank"的时候查到的Q这文章不仅有一个算法说明,也是一个Google的weblogQ记录了很多关于Google的新d一些市场动态信息?br /></p><p>Google的v量处理机Ӟ(x)鸽子pȝ<br /><a href="javascript:if(confirm('http://www.google.com/technology/pigeonrank.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.google.com/technology/pigeonrank.html'" tppabs="http://www.google.com/technology/pigeonrank.html"><font color="#002c99">http://www.google.com/technology/pigeonrank.html</font></a><br /></p><p>WEB日值统计工具Webalizer<br /><a href="javascript:if(confirm('http://www.webalizer.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.webalizer.org/'" tppabs="http://www.webalizer.org/"><font color="#002c99">http://www.webalizer.org<br /></font></a></p><p>Robots的说明:(x)<br /><a href="javascript:if(confirm('http://bar.baidu.com/robots/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://bar.baidu.com/robots/'" tppabs="http://bar.baidu.com/robots/"><font color="#002c99">http://bar.baidu.com/robots/</font></a><br /><a href="javascript:if(confirm('http://www.google.com/bot.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.google.com/bot.html'" tppabs="http://www.google.com/bot.html"><font color="#002c99">http://www.google.com/bot.html</font></a><br />搜烦引擎通过一U程序robotQ又UspiderQ,自动讉K互联|上的网ƈ获取|页信息。?zhn)可以在(zhn)的网站中创徏一个纯文本文grobots.txtQ在q个文g中声明该|站中哪些内容可以被robot讉KQ哪些不可以?br /><a class="weblink" ><font color="#002c99">www.best-code.com</font></a><br />原文出处Q?lt;a >http://www.chedong.com/tech/google.html</a><br /></p><img src ="http://www.tkk7.com/rendong/aggbug/61934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/rendong/" target="_blank">rendong</a> 2006-08-05 14:49 <a href="http://www.tkk7.com/rendong/archive/2006/08/05/61934.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://douhuowang.com" target="_blank">һaëһaƵ </a>| <a href="http://bdyls.com" target="_blank">ҹһӰԺ</a>| <a href="http://avav2021.com" target="_blank">С˵ͼƬƵ</a>| <a href="http://dzhankong.com" target="_blank"></a>| <a href="http://see01.com" target="_blank">avרҳ</a>| <a href="http://www-282555.com" target="_blank">žƵƵѹۿ</a>| <a href="http://zhaoxinwo.com" target="_blank">Ůվ߹ۿƵѵ </a>| <a href="http://91ttvv.com" target="_blank">ɫwww</a>| <a href="http://meixiudashi.com" target="_blank">Ƶ㶮</a>| <a href="http://www-554757.com" target="_blank">ձѸһƵ</a>| <a href="http://48eh.com" target="_blank">ɫ͵С˵</a>| <a href="http://siminglighting.com" target="_blank">67paoǿ67194ҹ </a>| <a href="http://www84847.com" target="_blank">˳ɵӰվɫ</a>| <a href="http://b7277.com" target="_blank">ѹۿ</a>| <a href="http://www-070755.com" target="_blank">޻ɫַ</a>| <a href="http://v1s3u5.com" target="_blank">߾ƷƵ</a>| <a href="http://schygfz.com" target="_blank">޾Ʒa߹ۿ </a>| <a href="http://xin-matai.com" target="_blank">޹պһ</a>| <a href="http://xx9911.com" target="_blank">jizzjizzձٸ</a>| <a href="http://lebaojj.com" target="_blank">avվ߹ۿ</a>| <a href="http://shguojing.com" target="_blank">Ļavѷ</a>| <a href="http://3333kkkk.com" target="_blank">޾Ʒþþ</a>| <a href="http://664403.com" target="_blank">߹ۿƵ</a>| <a href="http://zblinghang.com" target="_blank">պëƬѹۿ</a>| <a href="http://www09191z.com" target="_blank">99þþùƷţţ</a>| <a href="http://zzzttt669.com" target="_blank">߹ۿȤƵ</a>| <a href="http://baoyutv777.com" target="_blank">޹a777</a>| <a href="http://roocos.com" target="_blank">ŷպavҰ</a>| <a href="http://shunfk.com" target="_blank">aëƬ߿Ƭ</a>| <a href="http://kingleadsw.com" target="_blank">߹ۿѴվ</a>| <a href="http://fzgjw.com" target="_blank">Aһ</a>| <a href="http://niutextile.com" target="_blank">޾Ʒһ23Ŀ</a>| <a href="http://4922000.com" target="_blank">Ʒ鶹˳վ</a>| <a href="http://bohaolg.com" target="_blank">պ߹ۿ</a>| <a href="http://bxd888.com" target="_blank">btձһ</a>| <a href="http://szclinic.com" target="_blank">ۺa</a>| <a href="http://56aaaa.com" target="_blank">Ļ</a>| <a href="http://wyj4.com" target="_blank">Ļ</a>| <a href="http://liulaogendawutai.com" target="_blank">ӰԺ߲</a>| <a href="http://wilbysec.com" target="_blank">һëƬڵȫ</a>| <a href="http://www65axax.com" target="_blank">ձѲv</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>