<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>痴人痴语 &#187; wordpress</title>
	<atom:link href="http://chiidea.com/archives/category/web/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://chiidea.com</link>
	<description>性至痴则志凝</description>
	<lastBuildDate>Sun, 17 Apr 2011 15:44:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WordPress Popular Posts插件2.1.3版乱码问题</title>
		<link>http://chiidea.com/archives/805.html</link>
		<comments>http://chiidea.com/archives/805.html#comments</comments>
		<pubDate>Wed, 14 Jul 2010 18:14:00 +0000</pubDate>
		<dc:creator>chiidea</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://chiidea.com/?p=805</guid>
		<description><![CDATA[今天登陆blog后台，发现Wordpress Popular Posts有了更新，于是小手抖了一下。这一抖抖出了麻烦，更新后在插件中显示的中文标题全部乱码。由于急得去考试，顾不上这些了，乱就乱着吧。考完试回来发现并没有新的更新，看来只好自己来解决。 最初怀疑是php文件编码的问题，以前也遇到过。可是将插件目录下php文件全不转换为UTF-8格式后问题并没有改变。看来问题在于插件程序本身的问题，而最有可能出问题的是获取文章标题的代码。找到2.1.3版中获取文章标题的代码： // get post title /* qTranslate integration check */ ($this-&#62;qTrans) ? $tit = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($wppost-&#62;post_title) : $tit = $wppost-&#62;post_title; $tit = stripslashes($tit); $title_attr = htmlentities($tit, ENT_QUOTES); if ( $instance['shorten_title']['active'] &#38;&#38; (strlen($tit) &#62; $instance['shorten_title']['length'])) { $tit = mb_substr($tit, 0, $instance['shorten_title']['length'], 'UTF-8') . "..."; } $tit = htmlentities($tit, ENT_QUOTES); 与之前的代码稍作对比发现问题出在了htmlentities()这个函数上，以前用的是htmlspecialchars()。这个两个函数的作用都是将字符转换为 HTML 实体。不过二者还是有一些差别: htmlspecialchars() 函数把一些预定义的字符转换为 [...]
相关文章:<ol>
<li><a href='http://chiidea.com/archives/8.html' rel='bookmark' title='十步学会用css建站——第二步：创建html模板及文件目录等；'>十步学会用css建站——第二步：创建html模板及文件目录等；</a></li>
<li><a href='http://chiidea.com/archives/9.html' rel='bookmark' title='十步学会用css建站——第三步：将网站分为五个div，网页基本布局的基础;'>十步学会用css建站——第三步：将网站分为五个div，网页基本布局的基础;</a></li>
<li><a href='http://chiidea.com/archives/292.html' rel='bookmark' title='重新制作404页面'>重新制作404页面</a></li>
<li><a href='http://chiidea.com/archives/462.html' rel='bookmark' title='.htaccess指南'>.htaccess指南</a></li>
<li><a href='http://chiidea.com/archives/479.html' rel='bookmark' title='.htaccess中常用的正则表达式'>.htaccess中常用的正则表达式</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>今天登陆blog后台，发现Wordpress Popular Posts有了更新，于是小手抖了一下。这一抖抖出了麻烦，更新后在插件中显示的中文标题全部乱码。由于急得去考试，顾不上这些了，乱就乱着吧。考完试回来发现并没有新的更新，看来只好自己来解决。</p>
<p>最初怀疑是php文件编码的问题，以前也遇到过。可是将插件目录下php文件全不转换为UTF-8格式后问题并没有改变。看来问题在于插件程序本身的问题，而最有可能出问题的是获取文章标题的代码。找到2.1.3版中获取文章标题的代码：<br />
<code>// get post title<br />
/* qTranslate integration check */<br />
($this-&gt;qTrans) ? $tit = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($wppost-&gt;post_title) : $tit = $wppost-&gt;post_title;<br />
$tit = stripslashes($tit);<br />
$title_attr = <span style="color: #ff0000;">htmlentities</span>($tit, ENT_QUOTES);<br />
if ( $instance['shorten_title']['active'] &amp;&amp; (strlen($tit) &gt; $instance['shorten_title']['length'])) {<br />
$tit = mb_substr($tit, 0, $instance['shorten_title']['length'], 'UTF-8') . "...";<br />
}<br />
$tit = <span style="color: #ff0000;">htmlentities</span>($tit, ENT_QUOTES);</code><br />
<span id="more-805"></span></p>
<p>与之前的代码稍作对比发现问题出在了htmlentities()这个函数上，以前用的是htmlspecialchars()。这个两个函数的作用都是将字符转换为 HTML 实体。不过二者还是有一些差别:</p>
<blockquote><p><strong>htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。</strong></p>
<p>预定义的字符是：</p>
<ul>
<li>&amp; （和号） 成为 &amp;amp;</li>
<li>” （双引号） 成为 &amp;quot;</li>
<li>&#8216; （单引号） 成为 &amp;#039;</li>
<li>&lt; （小于） 成为 &amp;lt;</li>
<li>&gt; （大于） 成为 &amp;gt;</li>
</ul>
</blockquote>
<blockquote><p><strong>htmlentities() 函数把字符转换为 HTML 实体。</strong></p></blockquote>
<p>这两个函数在处理英文字符时可能区别不大，不过在处理中文字符是就有天壤之别了。htmlentities() 会连同中文字符一块转换成HTML 实体，结果就是在浏览器中看到的一堆乱码。</p>
<p>既然找到了问题，解决方法就很简单了。<strong><span style="color: #4f81bd;">找到相应代码，将htmlentities替换为htmlspecialchars即可。</span></strong></p>
<p>对比了一下2.1.x之前的版本发现作者对这个部分做了较大的修改。作者肯定是忽略了这个问题，或许是由于作者平时很少接触中文的缘故吧。希望作者能尽快收到反馈，在此之前就通过此法改改先用吧。</p>
<p>相关文章:<ol>
<li><a href='http://chiidea.com/archives/8.html' rel='bookmark' title='十步学会用css建站——第二步：创建html模板及文件目录等；'>十步学会用css建站——第二步：创建html模板及文件目录等；</a></li>
<li><a href='http://chiidea.com/archives/9.html' rel='bookmark' title='十步学会用css建站——第三步：将网站分为五个div，网页基本布局的基础;'>十步学会用css建站——第三步：将网站分为五个div，网页基本布局的基础;</a></li>
<li><a href='http://chiidea.com/archives/292.html' rel='bookmark' title='重新制作404页面'>重新制作404页面</a></li>
<li><a href='http://chiidea.com/archives/462.html' rel='bookmark' title='.htaccess指南'>.htaccess指南</a></li>
<li><a href='http://chiidea.com/archives/479.html' rel='bookmark' title='.htaccess中常用的正则表达式'>.htaccess中常用的正则表达式</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://chiidea.com/archives/805.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>第一款自制wordpress插件&#8212;&#8212;多功能边栏小工具All In One Widget</title>
		<link>http://chiidea.com/archives/580.html</link>
		<comments>http://chiidea.com/archives/580.html#comments</comments>
		<pubDate>Tue, 09 Feb 2010 03:23:12 +0000</pubDate>
		<dc:creator>chiidea</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[widget]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://chiidea.com/?p=580</guid>
		<description><![CDATA[经过两天的修改，本人第一个自制的wordpress插件终于出炉了。 基本功能： 本插件集“最新文章”、“热门文章”、“文章索引”、“最近评论”四功能于一身，可以通过鼠标选择，具体效果见本博边栏; 一键安装，并提供一些基本的功能设置，例如你可以设置具体使用以上哪几个功能（详见截图）； 提供一个基本的css（自用的），样子我觉得还过得去，如果不满意可以直接在插件文件下中的css文件里直接修改； 安装方法 下载附件（），解压，将文件夹”All-In-One-Widget”上传到目录”wp-content/plugins”下。 (要启用热门文章最好事先安装”Wordpress Popular Posts”,否则可能会出现一些问题，因为这一部分是直接调用Wordpress Popular Posts的) 特别说明 由于我还在自学php及javascript的阶段，而且又是第一次做wordpress的插件，属于边学边做，所以其中有一些部分是参考学习其它插件、模板的，其中参考最多的是Mystique这个模板。至于在插件中使用的javascript脚本是完全由我个人完成。如果你还有任何问题或建议都可以留言告诉我。 下载 相关文章: 添加管理widget WordPress Popular Posts插件2.1.3版乱码问题 .htaccess指南 .htaccess中常用的正则表达式 又搬家老
相关文章:<ol>
<li><a href='http://chiidea.com/archives/40.html' rel='bookmark' title='添加管理widget'>添加管理widget</a></li>
<li><a href='http://chiidea.com/archives/805.html' rel='bookmark' title='WordPress Popular Posts插件2.1.3版乱码问题'>WordPress Popular Posts插件2.1.3版乱码问题</a></li>
<li><a href='http://chiidea.com/archives/462.html' rel='bookmark' title='.htaccess指南'>.htaccess指南</a></li>
<li><a href='http://chiidea.com/archives/479.html' rel='bookmark' title='.htaccess中常用的正则表达式'>.htaccess中常用的正则表达式</a></li>
<li><a href='http://chiidea.com/archives/507.html' rel='bookmark' title='又搬家老'>又搬家老</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://chiidea.com/box/image/2010-01/wordpressAllInOneBOX_14E86/allinoneboxsetting_thumb.jpg"><img class="alignright" style="display: inline; margin-left: 0px; margin-right: 0px; border: 0px initial initial;" title="allinonebox-setting" src="http://chiidea.com/box/image/2010-01/wordpressAllInOneBOX_14E86/allinoneboxsetting_thumb.jpg" border="0" alt="allinonebox-setting" width="162" height="241" align="right" /></a>经过两天的修改，本人第一个自制的wordpress插件终于出炉了。</p>
<h3>基本功能：</h3>
<ol>
<li>本插件集“最新文章”、“热门文章”、“文章索引”、“最近评论”四功能于一身，可以通过鼠标选择，具体效果见本博边栏;</li>
<li>一键安装，并提供一些基本的功能设置，例如你可以设置具体使用以上哪几个功能（详见截图）；</li>
<li>提供一个基本的css（自用的），样子我觉得还过得去，如果不满意可以直接在插件文件下中的css文件里直接修改；</li>
</ol>
<h3>安装方法</h3>
<p>下载附件（<a class="downloadlink" href="http://chiidea.com/download/All-In-One-Widget-0.7.zip" title="Version0.7 downloaded 107 times" >All-In-One-Widget (107)</a>），解压，将文件夹”All-In-One-Widget”上传到目录”wp-content/plugins”下。</p>
<p><span style="color: #333399;">(要启用热门文章最好事先安装”Wordpress Popular Posts”,否则可能会出现一些问题，因为这一部分是直接调用Wordpress Popular Posts的)</span></p>
<h3>特别说明</h3>
<p>由于我还在自学php及javascript的阶段，而且又是第一次做wordpress的插件，属于边学边做，所以其中有一些部分是参考学习其它插件、模板的，其中参考最多的是Mystique这个模板。至于在插件中使用的javascript脚本是完全由我个人完成。如果你还有任何问题或建议都可以留言告诉我。</p>
<h3>下载</h3>
<a class="downloadlink" href="http://chiidea.com/download/All-In-One-Widget-0.7.zip" title="Version0.7 downloaded 107 times" >All-In-One-Widget (107)</a>
<p>相关文章:<ol>
<li><a href='http://chiidea.com/archives/40.html' rel='bookmark' title='添加管理widget'>添加管理widget</a></li>
<li><a href='http://chiidea.com/archives/805.html' rel='bookmark' title='WordPress Popular Posts插件2.1.3版乱码问题'>WordPress Popular Posts插件2.1.3版乱码问题</a></li>
<li><a href='http://chiidea.com/archives/462.html' rel='bookmark' title='.htaccess指南'>.htaccess指南</a></li>
<li><a href='http://chiidea.com/archives/479.html' rel='bookmark' title='.htaccess中常用的正则表达式'>.htaccess中常用的正则表达式</a></li>
<li><a href='http://chiidea.com/archives/507.html' rel='bookmark' title='又搬家老'>又搬家老</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://chiidea.com/archives/580.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>又搬家老</title>
		<link>http://chiidea.com/archives/507.html</link>
		<comments>http://chiidea.com/archives/507.html#comments</comments>
		<pubDate>Tue, 05 Jan 2010 17:05:16 +0000</pubDate>
		<dc:creator>chiidea</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://chiidea.com/?p=507</guid>
		<description><![CDATA[经过了几天的折腾，终于正式搬到了这个，按朋友的话说是伟光正的bluehost。之前用powweb实在是有些恼火。说实话客服还不错，但即使客服再好又有什么用，每天数据库基本都要宕机，难不成天天找他们练英语。另外他们对流量和空间的限制也很严格，什么无限流量无限空间都是扯淡，到时拿出一个条款：这个服务器不能用于储存图片、视频、备份。难道买了个虚拟服务器还要投入免费存储空间的怀抱。 与powweb形成强烈对比的似乎我注册的000webhost（现在国内注册有些恼火），这个号称最好的免费虚拟主机确实不错，速度比powweb来得快，通过php探针发现主机的性能相当的强悍，只是限制比较多。在交接之际跑去上面中转了一天，经过对服务器和小小的调整（主要是文件权限和一些php的小修改），运行起wordpress还是绰绰有余的。 最终和朋友决定转战bluehost，可是开局不利，分配的share ip直接被墙。经过小小纠结之后，还是决定买一个独立ip。经过接近一天的验明正身，终于将独立ip搞定，顺带的是可爱的ssh。 如今，小博已经完全恢复老。个人感觉速度是要比powweb快不少，无论是上行还是下行速度都很凶悍。已经运行了半天多没发现什么问题，希望能这么一直的保持下去，不要再看见那个万恶的数据库错误了。 想来这已是第3次更换blog空间了，其中不乏无奈。不由想起了自己的成长经历，恐怕最特别也就是搬家了。从小到大已记不清搬了多少次搬家了，其中同样不乏无奈，但是生活环境也在这一次次的折腾中不知不觉变得越来越好。心中也从最初的百般不情愿到现在的些许期待。亲人曾问说为啥不到新浪这种blog平台去呢，尚不说国内的blog平台河蟹太多、炒作成分太重、娱乐味太浓，最无法忍受的就是DIY成分太少，这点除了独立blog外要数blogger最好了，可惜惨遭封杀多时了。想来如果没有最初那次颇显无奈搬家，恐怕现在一家人还住在老家的哪栋不知名的房子里。每一次折腾都在学习都在进步。如今又在期待的下一次的搬家了。或许正印证了那句话：生命不息，折腾不止。 相关文章: 都是折腾惹得祸 .htaccess指南 .htaccess中常用的正则表达式 第一款自制wordpress插件&#8212;&#8212;多功能边栏小工具All In One Widget WordPress Popular Posts插件2.1.3版乱码问题
相关文章:<ol>
<li><a href='http://chiidea.com/archives/439.html' rel='bookmark' title='都是折腾惹得祸'>都是折腾惹得祸</a></li>
<li><a href='http://chiidea.com/archives/462.html' rel='bookmark' title='.htaccess指南'>.htaccess指南</a></li>
<li><a href='http://chiidea.com/archives/479.html' rel='bookmark' title='.htaccess中常用的正则表达式'>.htaccess中常用的正则表达式</a></li>
<li><a href='http://chiidea.com/archives/580.html' rel='bookmark' title='第一款自制wordpress插件&mdash;&mdash;多功能边栏小工具All In One Widget'>第一款自制wordpress插件&mdash;&mdash;多功能边栏小工具All In One Widget</a></li>
<li><a href='http://chiidea.com/archives/805.html' rel='bookmark' title='WordPress Popular Posts插件2.1.3版乱码问题'>WordPress Popular Posts插件2.1.3版乱码问题</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>经过了几天的折腾，终于正式搬到了这个，按朋友的话说是伟光正的bluehost。之前用powweb实在是有些恼火。说实话客服还不错，但即使客服再好又有什么用，每天数据库基本都要宕机，难不成天天找他们练英语。另外他们对流量和空间的限制也很严格，什么无限流量无限空间都是扯淡，到时拿出一个条款：这个服务器不能用于储存图片、视频、备份。难道买了个虚拟服务器还要投入免费存储空间的怀抱。</p>
<p>与powweb形成强烈对比的似乎我注册的000webhost（现在国内注册有些恼火），这个号称最好的免费虚拟主机确实不错，速度比powweb来得快，通过php探针发现主机的性能相当的强悍，只是限制比较多。在交接之际跑去上面中转了一天，经过对服务器和小小的调整（主要是文件权限和一些php的小修改），运行起wordpress还是绰绰有余的。</p>
<p>最终和朋友决定转战bluehost，可是开局不利，分配的share ip直接被墙。经过小小纠结之后，还是决定买一个独立ip。经过接近一天的验明正身，终于将独立ip搞定，顺带的是可爱的ssh。</p>
<p>如今，小博已经完全恢复老。个人感觉速度是要比powweb快不少，无论是上行还是下行速度都很凶悍。已经运行了半天多没发现什么问题，希望能这么一直的保持下去，不要再看见那个万恶的数据库错误了。</p>
<p>想来这已是第3次更换blog空间了，其中不乏无奈。不由想起了自己的成长经历，恐怕最特别也就是搬家了。从小到大已记不清搬了多少次搬家了，其中同样不乏无奈，但是生活环境也在这一次次的折腾中不知不觉变得越来越好。心中也从最初的百般不情愿到现在的些许期待。亲人曾问说为啥不到新浪这种blog平台去呢，尚不说国内的blog平台河蟹太多、炒作成分太重、娱乐味太浓，最无法忍受的就是DIY成分太少，这点除了独立blog外要数blogger最好了，可惜惨遭封杀多时了。想来如果没有最初那次颇显无奈搬家，恐怕现在一家人还住在老家的哪栋不知名的房子里。每一次折腾都在学习都在进步。如今又在期待的下一次的搬家了。或许正印证了那句话：生命不息，折腾不止。</p>
<p>相关文章:<ol>
<li><a href='http://chiidea.com/archives/439.html' rel='bookmark' title='都是折腾惹得祸'>都是折腾惹得祸</a></li>
<li><a href='http://chiidea.com/archives/462.html' rel='bookmark' title='.htaccess指南'>.htaccess指南</a></li>
<li><a href='http://chiidea.com/archives/479.html' rel='bookmark' title='.htaccess中常用的正则表达式'>.htaccess中常用的正则表达式</a></li>
<li><a href='http://chiidea.com/archives/580.html' rel='bookmark' title='第一款自制wordpress插件&mdash;&mdash;多功能边栏小工具All In One Widget'>第一款自制wordpress插件&mdash;&mdash;多功能边栏小工具All In One Widget</a></li>
<li><a href='http://chiidea.com/archives/805.html' rel='bookmark' title='WordPress Popular Posts插件2.1.3版乱码问题'>WordPress Popular Posts插件2.1.3版乱码问题</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://chiidea.com/archives/507.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.htaccess中常用的正则表达式</title>
		<link>http://chiidea.com/archives/479.html</link>
		<comments>http://chiidea.com/archives/479.html#comments</comments>
		<pubDate>Wed, 30 Dec 2009 02:30:56 +0000</pubDate>
		<dc:creator>chiidea</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[网络相关]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://chiidea.com/?p=479</guid>
		<description><![CDATA[今天整理了一些在.htaccess中常用的正则表达式。由于我是自学的，所以难免有不足的地方。在学习过程中主要看了：Apache模块 mod_rewrite、正则表达式30分钟入门教程。如果你觉的我写得太水或是无法满足你强大的求知欲可以看以上两个。 文本 . —— 任意一个单字符 [chars] —— 字符类: “chars”中的任意一个字符【也可用[0-5]表示0到5中的任意数】 [^chars] —— 字符类: 不在”chars”中的字符 text1&#124;text2 —— 选择: text1 或 text2 量词 ?  —— 前面的字符出现 0 或 1 次 【不出现或只出现一次】 * —— 前面的字符出现 0 或 N 次(N &#62; 0) 【出现或不出现】 + —— 前面的字符出现 1 或 N 次(N &#62; 1) 【必须出现至少一次】 {n} —— 前面的字符重复n次 {n,} —— 前面的字符重复n次或更多 {a,b} —— 前面的字符重复a至b次 例子： [...]
相关文章:<ol>
<li><a href='http://chiidea.com/archives/439.html' rel='bookmark' title='都是折腾惹得祸'>都是折腾惹得祸</a></li>
<li><a href='http://chiidea.com/archives/462.html' rel='bookmark' title='.htaccess指南'>.htaccess指南</a></li>
<li><a href='http://chiidea.com/archives/507.html' rel='bookmark' title='又搬家老'>又搬家老</a></li>
<li><a href='http://chiidea.com/archives/580.html' rel='bookmark' title='第一款自制wordpress插件&mdash;&mdash;多功能边栏小工具All In One Widget'>第一款自制wordpress插件&mdash;&mdash;多功能边栏小工具All In One Widget</a></li>
<li><a href='http://chiidea.com/archives/805.html' rel='bookmark' title='WordPress Popular Posts插件2.1.3版乱码问题'>WordPress Popular Posts插件2.1.3版乱码问题</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>今天整理了一些在.htaccess中常用的正则表达式。由于我是自学的，所以难免有不足的地方。在学习过程中主要看了：<a href="http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_rewrite.html">Apache模块 mod_rewrite</a>、<a href="http://deerchao.net/tutorials/regex/regex.htm">正则表达式30分钟入门教程</a>。如果你觉的我写得太水或是无法满足你强大的求知欲可以看以上两个。</p>
<h2><strong><span style="color: #3366ff;">文本</span></strong></h2>
<blockquote><p><span style="color: #ff0000;"><strong>. <span style="color: #000000;">—— </span></strong></span>任意一个单字符<br />
[chars] —— 字符类: “chars”中的任意一个字符【也可用[0-5]表示0到5中的任意数】</p>
<p>[^chars] —— 字符类: 不在”chars”中的字符</p>
<p>text1|text2 —— 选择: text1 或 text2</p>
</blockquote>
<h2><strong><span style="color: #3366ff;">量词</span></strong></h2>
<blockquote><p><span style="color: #ff0000;">?  <span style="color: #000000;">—— </span></span>前面的字符出现 0 或 1 次 【不出现或只出现一次】</p>
<p><span style="color: #ff0000;">*</span> —— 前面的字符出现 0 或 N 次(N &gt; 0) 【出现或不出现】</p>
<p><span style="color: #ff0000;">+ </span> —— 前面的字符出现 1 或 N 次(N &gt; 1) 【必须出现至少一次】</p>
<p>{n} —— 前面的字符重复n次</p>
<p>{n,} —— 前面的字符重复n次或更多</p>
<p>{a,b} —— 前面的字符重复a至b次<span id="more-479"></span></p>
</blockquote>
<p><span style="color: #ff0000;">例子：</span></p>
<blockquote><p>1、<span style="text-decoration: underline;">.* </span>—— 任何长度的字符</p>
<p>2、<span style="text-decoration: underline;">&lt;a[^&gt;]+&gt; </span>—— 匹配用尖括号括起来的以a开头的字符串。</p>
</blockquote>
<h2><strong><span style="color: #3366ff;">分组</span></strong></h2>
<blockquote><p>(text) —— text 组</p>
<p>(常用于设置一个选择的边界，或用于生成后引用：</p>
<p>在RewriteRule中可以用 $N 引用第N个分组)</p>
</blockquote>
<p><span style="color: #ff0000;">小测试：</span>能看懂下面一长串的含义吗?</p>
<blockquote><p>((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)</p>
</blockquote>
<h2><strong><span style="color: #3366ff;">锚</span></strong></h2>
<blockquote><p>^ —— 匹配字符串的开始</p>
<p>$ —— 匹配字符串的结束</p>
<p>【^$锚可以用于确定字符串，既可以用于确定起点或终点】</p>
</blockquote>
<p><span style="color: #ff0000;">例子</span>：^$ —— 空字符串</p>
<h2><strong><span style="color: #3366ff;">转义</span></strong></h2>
<blockquote><p>\c —— 对给定的字符c进行转义【比如对”.[]()”进行转义，既排除他们本身的定义，最常用的是/.】</p>
</blockquote>
<p><strong><span style="color: #ff0000;">说明：</span></strong>如果你想输入的是元字符本身的话，比如你想输入.,或者*,就出现了问题：你没办法指定它们，因为它们会被解释成别的意思。这时你就得使用\来取消这些字符的特殊意义。因此，你应该使用\.和\*。当然，要查找\本身，你也得用\\.</p>
<p>相关文章:<ol>
<li><a href='http://chiidea.com/archives/439.html' rel='bookmark' title='都是折腾惹得祸'>都是折腾惹得祸</a></li>
<li><a href='http://chiidea.com/archives/462.html' rel='bookmark' title='.htaccess指南'>.htaccess指南</a></li>
<li><a href='http://chiidea.com/archives/507.html' rel='bookmark' title='又搬家老'>又搬家老</a></li>
<li><a href='http://chiidea.com/archives/580.html' rel='bookmark' title='第一款自制wordpress插件&mdash;&mdash;多功能边栏小工具All In One Widget'>第一款自制wordpress插件&mdash;&mdash;多功能边栏小工具All In One Widget</a></li>
<li><a href='http://chiidea.com/archives/805.html' rel='bookmark' title='WordPress Popular Posts插件2.1.3版乱码问题'>WordPress Popular Posts插件2.1.3版乱码问题</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://chiidea.com/archives/479.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>.htaccess指南</title>
		<link>http://chiidea.com/archives/462.html</link>
		<comments>http://chiidea.com/archives/462.html#comments</comments>
		<pubDate>Mon, 28 Dec 2009 13:28:49 +0000</pubDate>
		<dc:creator>chiidea</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://chiidea.com/?p=462</guid>
		<description><![CDATA[最近想学习一下.htaccess的配置方法，看了一些网上的材料，大都是相同的，找了这份觉得还是不错。于是做了一些整理和修改。但是由于实在搞不清谁原文的作者，就无法在此提供相应作者的链接了。 学习了这篇指南之后并不能完全掌握.htaccess的用法，其实.htaccess只是Apache HTTP Server中的一个很小的一部分，如果想真正掌握.htaccess，就只有去学习Apache了。如果有兴趣可以看看Apache HTTP Server 的中文文档。 目录 1. .htaccess介绍 1.1 什么是.htaccess文件 1.2 如何创建.httaccess文件 2. .httacces文件的配置 2.1.配置.htaccess 自定义错误页 2.2.配置.htaccess 停示显示目录列表 2.3.配置.htaccess 阻止/允许特定的IP地址 2.4.配置.htaccess替换index文件 2.5.配置.htaccess 重定向页面 3. .httacces实用功能 3.1.密码保护的.htaccess文件 3.2.密码保护的.htpasswd文件 3.3.配置 .htaccess 输入用户名和密码 3.4.配置.htaccess 直接访问加密网站 3.5.利用 .htaccess 防止盗链 3.6.利用 .htaccess进行地址转向 3.7.利用 .htaccess对域名中“www”的控制 4. .htaccess 总结 1.1 什么是.htaccess文件 从本指南中，你将可以学习到有关.htaccess文件及其功能的知识，并用以优化你的网站。尽管.htaccess只是一个文件，但它可以更改服务器的设置，允许你做许多不同的事情，最流行的功能是您可以创建自定义的“404 error”页面。.htaccess 并不难于使用，归根结底，它只是在一个text文档中添加几条简单的指令而已。 首先你要判断主机支持它 这可能很难用简单的答案来回答。许多主机支持.htaccess，但实际上并不会特别声明，许多其他类型的主机有能力但并不允许他们的用户使用. htaccess。一般来说，如果你的主机使用Unix或Linux系统，或任何版本的Apache网络服务器，从理论上都是支持.htaccess的，尽管你的主机服务商可能不允许你使用它。 判断你的主机是否允许.htaccess，一个标志很好的是它是否支持文件夹密码保护。为达到此功能，主机服务商需要使用.htaccess（当然，少数情况下他们虽提供密码保护功能，但却并不允许你使用.htaccess）。如果你不确定自己的主机是否支持.htaccess，最好的办法是上传你自己的.htaccess文件看看是否有用，或者直接发送e-mail向你的主机服务商咨询。 Apache系统中的.htaccess文件(或者”分布式配置文件”提供了针对目录改变配置的方法，即，在一个特定的文档目录中放置一个包含一个或多个指令的文件，以作用于此目录及其所有子目录。作为用户，所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。 [...]
相关文章:<ol>
<li><a href='http://chiidea.com/archives/292.html' rel='bookmark' title='重新制作404页面'>重新制作404页面</a></li>
<li><a href='http://chiidea.com/archives/479.html' rel='bookmark' title='.htaccess中常用的正则表达式'>.htaccess中常用的正则表达式</a></li>
<li><a href='http://chiidea.com/archives/805.html' rel='bookmark' title='WordPress Popular Posts插件2.1.3版乱码问题'>WordPress Popular Posts插件2.1.3版乱码问题</a></li>
<li><a href='http://chiidea.com/archives/29.html' rel='bookmark' title='新笔记本蓝屏问题'>新笔记本蓝屏问题</a></li>
<li><a href='http://chiidea.com/archives/439.html' rel='bookmark' title='都是折腾惹得祸'>都是折腾惹得祸</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h3><strong> </strong></h3>
<p>最近想学习一下.htaccess的配置方法，看了一些网上的材料，大都是相同的，找了这份觉得还是不错。于是做了一些整理和修改。但是由于实在搞不清谁原文的作者，就无法在此提供相应作者的链接了。</p>
<p>学习了这篇指南之后并不能完全掌握.htaccess的用法，其实.htaccess只是Apache HTTP Server中的一个很小的一部分，如果想真正掌握.htaccess，就只有去学习Apache了。如果有兴趣可以看看<a href="http://lamp.linux.gov.cn/Apache/ApacheMenu/index.html">Apache HTTP Server 的中文文档</a>。</p>
<h2><strong>目录</strong></h2>
<h2><strong>1. .htaccess介绍<a href="http://box.chiidea.com/image/098/986d1f81eddb.htaccess_123D9/apache.jpg"><img style="display: inline; margin-left: 0px; margin-right: 0px; border-width: 0px;" title="apache" src="http://box.chiidea.com/image/098/986d1f81eddb.htaccess_123D9/apache_thumb.jpg" border="0" alt="apache" width="134" height="357" align="right" /></a> </strong></h2>
<blockquote><p><strong><a href="#1.1">1.1 什么是.htaccess文件</a></strong><br />
<strong><a href="#1.2">1.2 如何创建.httaccess文件</a></strong></p></blockquote>
<h2>2. .httacces文件的配置</h2>
<blockquote><p><strong><a href="#2.1">2.1.配置.htaccess 自定义错误页</a></strong></p>
<p><strong><a href="#2.2">2.2.配置.htaccess 停示显示目录列表</a></strong></p>
<p><strong><a href="#2.3">2.3.配置.htaccess 阻止/允许特定的IP地址</a></strong></p>
<p><strong><a href="#2.4">2.4.配置.htaccess替换index文件</a></strong></p>
<p><strong><a href="#2.5">2.5.配置.htaccess 重定向页面</a></strong></p></blockquote>
<h2>3. .httacces实用功能</h2>
<blockquote><p><strong><a href="#3.1">3.1.密码保护的.htaccess文件</a></strong></p>
<p><strong><a href="#3.2">3.2.密码保护的.htpasswd文件</a></strong></p>
<p><strong><a href="#3.3">3.3.配置 .htaccess 输入用户名和密码</a></strong></p>
<p><strong><a href="#3.4">3.4.配置.htaccess 直接访问加密网站</a></strong></p>
<p><strong><a href="#3.5">3.5.利用 .htaccess 防止盗链</a></strong></p>
<p><strong><a href="#3.6">3.6.利用 .htaccess进行地址转向</a></strong></p>
<p><strong><a href="#3.7">3.7.利用 .htaccess对域名中“www”的控制</a></strong></p></blockquote>
<h2><a href="#4">4. .htaccess 总结</a></h2>
<p><span id="more-462"></span></p>
<h3><span style="color: #004080;"><strong><a id="1.1"></a>1.1 </strong><strong>什么是.htaccess文件</strong></span></h3>
<p>从本指南中，你将可以学习到有关.htaccess文件及其功能的知识，并用以优化你的网站。尽管.htaccess只是一个文件，但它可以更改服务器的设置，允许你做许多不同的事情，最流行的功能是您可以创建自定义的“404 error”页面。.htaccess 并不难于使用，归根结底，它只是在一个text文档中添加几条简单的指令而已。</p>
<p><strong>首先你要判断主机支持它</strong></p>
<p>这可能很难用简单的答案来回答。许多主机支持.htaccess，但实际上并不会特别声明，许多其他类型的主机有能力但并不允许他们的用户使用. htaccess。一般来说，如果你的主机使用Unix或Linux系统，或任何版本的Apache网络服务器，从理论上都是支持.htaccess的，尽管你的主机服务商可能不允许你使用它。</p>
<p>判断你的主机是否允许.htaccess，一个标志很好的是它是否支持文件夹密码保护。为达到此功能，主机服务商需要使用.htaccess（当然，少数情况下他们虽提供密码保护功能，但却并不允许你使用.htaccess）。如果你不确定自己的主机是否支持.htaccess，最好的办法是上传你自己的.htaccess文件看看是否有用，或者直接发送e-mail向你的主机服务商咨询。</p>
<p>Apache系统中的.htaccess文件(或者”分布式配置文件”提供了针对目录改变配置的方法，即，在一个特定的文档目录中放置一个包含一个或多个指令的文件，以作用于此目录及其所有子目录。作为用户，所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。</p>
<p>子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。</p>
<p>.htaccess必须以ASCII模式上传，最好将其权限设置为644。</p>
<p>.htaccess可以做大量的事情，包括：文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表，以及使用其他文件作为index文件。</p>
<h3><span style="color: #004080;"><strong><a id="1.2"></a>1.2 </strong><strong>如何创建</strong><strong>.httaccess</strong><strong>文件</strong></span></h3>
<p>创建.htaccess文件也许会给你带来一些困难。写文件很容易，你只需要在文字编缉器（例如：写字板）里写下适当的代码。真正困难的可能是文件的保存，因为.htaccess是一个古怪的文件名（它事实上没有文件名，只有一个由8个字母组成的扩展名），而在一些系统（如windows 3.1）中无法接受这样的文件名。在大多数的操作系统中，你需要做的是将文档保存成名为：“.htaccess” （包括引号）。如果这也不行，你需要将其先命名为其它名字（例如htaccess.txt），再将其上传到服务器上，之后直接使用FTP软件来重命名。</p>
<p><span style="color: #ff0000;">警告</span></p>
<p>在使用.htaccess之前，我必须给你一些警告。虽然在服务器上使用.htaccess绝对不太可能给你带来任何麻烦（如果有些东西错了，它只是没效用罢了），但如果你使用Microsoft FrontPage Extensions，就必须特别小心。因为FrontPage Extensions本身使用了.htaccess，因此你不能编辑它并加入你自己的信息。如果确实有这方面的需要（并不推荐，但是可能），你应该先从服务器上下载.htaccess文档（如果存在），之后在前面加上你的代码。</p>
<h3><span style="color: #004080;"><strong>2</strong><strong>.httacces</strong><strong>文件的配置</strong></span></h3>
<h3><span style="color: #004080;"><strong><a id="2.1"></a>2.1.</strong><strong>配置</strong><strong>.htaccess </strong><strong>自定义错误页</strong></span></h3>
<p>我要介绍的.htaccess的第一个应用是自定义错误页面，这将使你可以拥有自己的、个性化的错误页面（例如找不到文件时），而不是你的服务商提供的错误页或没有任何页面。这会让你的网站在出错的时候看上去更专业。你还可以利用脚本程序在发生错误的时候通知你（例如我使用Free Webmaster Help的PHP脚本程序，当找不到页面的时候自动e-mail给我）。</p>
<p>你所知道的任何页面错误代码（像404找不到页面），都可以通过在.htaccess文件里加入下面的文字将其变成自定义页面：</p>
<blockquote><p><span style="color: #ff0000;"><strong>ErrorDocument</strong> <strong>errornumber</strong><strong> /file.html</strong></span></p></blockquote>
<p>举例来说，如果我的根目录下有一个nofound.html文件，我想使用它作为404 error的页面：</p>
<blockquote><p><span style="color: #0080c0;">ErrorDocument 404 /notfound.html</span></p></blockquote>
<p>如果文件不在网站的根目录下，你只需要把路径设置为：</p>
<blockquote><p><span style="color: #0080c0;">ErrorDocument 500 /errorpages/500.html</span></p></blockquote>
<p>以下是一些最常用的错误：</p>
<p>常用的客户端请求错误返回代码：</p>
<blockquote><p><span style="color: #0080c0;">400 &#8211; Bad request 错误请求</span></p>
<p><span style="color: #0080c0;">401 Authorization Required 需要验证</span></p>
<p><span style="color: #0080c0;">403 Forbidden 禁止</span></p>
<p><span style="color: #0080c0;">404 Not Found 找不到页面</span></p>
<p><span style="color: #0080c0;">405 Method Not Allowed</span></p>
<p><span style="color: #0080c0;">408 Request Timed Out</span></p>
<p><span style="color: #0080c0;">411 Content Length Required</span></p>
<p><span style="color: #0080c0;">412 Precondition Failed</span></p>
<p><span style="color: #0080c0;">413 Request Entity Too Long</span></p>
<p><span style="color: #0080c0;">414 Request URI Too Long</span></p>
<p><span style="color: #0080c0;">415 Unsupported Media Type</span></p></blockquote>
<p>常见的服务器错误返回代码：</p>
<blockquote><p><span style="color: #0080c0;">500 Internal Server Error 内部服务器错误</span></p></blockquote>
<p>接下来，你要做的只是创建一个错误发生时显示的文件，然后把它们和.htaccess一起上传。</p>
<p>用户可以利用.htaccess指定自己事先制作好的错误提醒页面。一般情况下，人们可以专门设立一个目录，例如errors放置这些页面。然后再.htaccess中，加入如下的指令：</p>
<blockquote><p><span style="color: #0080c0;">ErrorDocument 404 /errors/notfound.html</span></p>
<p><span style="color: #0080c0;">ErrorDocument 500 /errors/internalerror.html</span></p></blockquote>
<p>一条指令一行。上述第一条指令的意思是对于404，也就是没有找到所需要的文档的时候得显示页面为/errors目录下的notfound.html页面。不难看出语法格式为：</p>
<blockquote><p><span style="color: #ff0000;"><strong>ErrorDocument</strong> <strong>错误代码</strong><strong> /</strong><strong>目录名</strong><strong>/</strong><strong>文件名.扩展名</strong></span></p></blockquote>
<p>如果所需要提示的信息很少的话，不必专门制作页面，直接在指令中使用HTML号了，例如下面这个例子：</p>
<blockquote><p><span style="color: #0080c0;">ErrorDocument 401 “你没有权限访问该页面，请放弃！”</span></p></blockquote>
<h3><span style="color: #004080;"><strong><a id="2.2"></a>2.2.</strong><strong>配置</strong><strong>.htaccess </strong><strong>停示显示目录列表</strong></span></h3>
<p>有些时候，由于某种原因，你的目录里没有index文件，这意味着当有人在浏览器地址栏键入了该目录的路径，该目录下所有的文件都会显示出来，这会给你的网站留下安全隐患。</p>
<blockquote><p><strong><span style="color: #ff0000;">允许目录列表显示: Options +Indexes</span></strong></p>
<p><strong> </strong></p>
<p><strong><strong><span style="color: #ff0000;">禁止目录列表显示: Options -Indexes</span></strong></strong></p>
<p><strong> </strong><strong></strong></p></blockquote>
<h3><span style="color: #004080;"><strong><a id="2.3"></a>2.3.</strong><strong>配置</strong><strong>.htaccess </strong><strong>阻止</strong><strong>/</strong><strong>允许特定的</strong><strong>IP</strong><strong>地址</strong></span></h3>
<p>某些情况下，你可能只想允许某些特定IP的用户可以访问你的网站（例如：只允许使用特定ISP的用户进入某个目录），或者想封禁某些特定的IP地址（例如：将低级用户隔离于你的信息版面外）。当然，这只在你知道你想拦截的IP地址时才有用，然而现在网上的大多数用户都使用动态IP地址，所以这并不是限制使用的常用方法。</p>
<p>你可以使用以下命令封禁一个IP地址：</p>
<blockquote><p><strong><span style="color: #ff0000;">deny from 000.000.000.000</span></strong></p></blockquote>
<p>这里的000.000.000.000是被封禁的IP地址，如果你只指明了其中的几个，则可以封禁整个网段的地址。如你输入210.10.56.，则将封禁210.10.56.0～210.10.56.255的所有IP地址。</p>
<p>你可以使用以下命令允许一个IP地址访问网站：</p>
<blockquote><p><strong><span style="color: #ff0000;">allow from 000.000.000.000</span></strong></p></blockquote>
<p>被允许的IP地址则为000.000.000.000，你可以象封禁IP地址一样封禁整个网段。</p>
<p>如果你想阻止所有人访问该目录，则可以使用：</p>
<blockquote><p><strong><span style="color: #ff0000;">deny from all</span></strong></p></blockquote>
<p>不过这并不影响脚本程序使用这个目录下的文档。</p>
<h3><span style="color: #004080;"><strong><a id="2.4"></a>2.4.</strong><strong>配置</strong><strong>.htaccess</strong><strong>替换</strong><strong>index</strong><strong>文件</strong></span></h3>
<p>改变缺省的首页文件</p>
<p>一般情况下缺省的首页文件名有default、index等。不过，有些时候目录中没有缺省文件，而是某个特定的文件名，比如在w3sky中是 w3sky.PHP。这种情况下，要用户记住文件名来访问很麻烦。在.htaccess中可以轻易的设置新的缺省文件名：</p>
<blockquote><p><span style="color: #ff0000;"><strong>DirectoryIndex</strong> <strong>新的缺省文件名</strong></span></p></blockquote>
<p>也可以列出多个，顺序表明它们之间的优先级别，例如：</p>
<blockquote><p><span style="color: #0080c0;">DirectoryIndex filename.html index.cgi index.pl default.htm</span></p></blockquote>
<p>也许你不想一直使用index.htm或index.html作为目录的索引文件。举例来说，如果你的站点使用PHP文件，你可能会想使用 index.PHP来作为该目录的索引文档。当然也不必局限于“index”文档，如果你愿意，使用.htaccess你甚至能够设置 foofoo.balh来作为你的索引文档！</p>
<p>这些互为替换的索引文件可以排成一个列表，服务器会从左至右进行寻找，检查哪个文档在真实的目录中存在。如果一个也找不到，它将会把目录列表显示出来（除非你已经关闭了显示目录文件列表）。</p>
<blockquote><p><span style="color: #0080c0;">DirectoryIndex index.PHP index.PHP3 messagebrd.pl index.html index.htm</span></p></blockquote>
<h3><span style="color: #004080;"><strong><a id="2.5"></a>2.5.</strong><strong>配置</strong><strong>.htaccess </strong><strong>重定向页面</strong></span></h3>
<p>.htaccess最有用的功能之一就是将请求重定向到同站内或站外的不同文档。这在你改变了一个文件名称，但仍然想让用户用旧地址访问到它时，变的极为有用。另一个应用（我发现的很有用的）是重定向到一个长URL，例如在我的时事通讯中，我可以使用一个很简短的URL来指向我的会员链接。以下是一个重定向文件的例子：</p>
<blockquote><p><span style="color: #0080c0;">Redirect /location/from/root/file.ext</span></p>
<p><span style="color: #0080c0;">http://www.w3sky.com/new/file/123.html</span></p></blockquote>
<p>上述例子中，访问在root目录下的名为oldfile.html可以键入：</p>
<blockquote><p><span style="color: #0080c0;">/oldfile.html</span></p></blockquote>
<p>访问一个旧次级目录中的文件可以键入：</p>
<blockquote><p><span style="color: #0080c0;">/old/oldfile.html</span></p></blockquote>
<p>你也可以使用.htaccess重定向整个网站的目录。假如你的网站上有一个名为olddirectory的目录，并且你已经在一个新网站 http://www.w3sky.com/newdirectory/上建立了与上相同的文档，你可以将旧目录下所有的文件做一次重定向而不必一一声明：</p>
<blockquote><p><span style="color: #0080c0;">Redirect /olddirectory http://www.w3sky.com/newdirectory</span></p></blockquote>
<p>这样，任何指向到站点中/olddirectory目录的请求都将被重新指向新的站点，包括附加的额外URL信息。例如有人键入：</p>
<blockquote><p><span style="color: #0080c0;">http://www.w3sky.com/olddirecotry/oldfiles/images/image.gif</span></p></blockquote>
<p>请求将被重定向到：</p>
<blockquote><p><span style="color: #0080c0;">http://www.w3sky.com/newdirectory/oldfiles/images/image.gif</span></p></blockquote>
<p>如果正确使用，此功能将极其强大。</p>
<p>我们可能对网站进行重新规划，将文档进行了迁移，或者更改了目录。这时候，来自搜索引擎或者其他网站链接过来的访问就可能出错。这种情况下，可以通过如下指令来完成旧的URL自动转向到新的地址：</p>
<blockquote><p><span style="color: #ff0000;"><strong>Redirect /</strong><strong>旧目录</strong><strong>/</strong><strong>旧文档名</strong> <strong>新文档的地址</strong></span></p></blockquote>
<p>或者整个目录的转向：</p>
<blockquote><p><span style="color: #ff0000;"><strong>Redirect </strong><strong>旧目录</strong> <strong>新目录</strong></span></p></blockquote>
<h3><span style="color: #004080;"><strong><a id="3.1"></a>3.1.</strong><strong>密码保护的</strong><strong>.htaccess</strong><strong>文件</strong></span></h3>
<p>尽管有各种各样的.htaccess用法，但至今最流行的也可能是最有用的做法是将其用于网站目录可靠的密码保护。尽管JavaScrip等也能做到，但只有.htaccess具有完美的安全性（即访问者必须知晓密码才可以访问目录，并且绝无“后门”可走）。</p>
<p>利用.htaccess将一个目录加上密码保护分两个步骤。第一步是在你的.htaccess文档里加上适当的几行代码，再将.htaccess文档放进你要保护的目录下：</p>
<blockquote><p><span style="color: #ff0000;"><strong>AuthName</strong><strong> “Section Name”</strong></span></p>
<p><span style="color: #ff0000;"><strong>AuthType</strong><strong> Basic</strong></span></p>
<p><span style="color: #ff0000;"><strong>AuthUserFile</strong><strong> /full/path/</strong><strong>to</strong><strong>/.</strong><strong>htpasswd</strong></span></p>
<p><strong><span style="color: #ff0000;">Require valid-user</span></strong></p></blockquote>
<p>你可能需要根据你的网站情况修改一下上述内容中的一些部分，如用被保护部分的名字”Members Area”，替换掉“Section Name”。</p>
<p>/full/parth/to/.htpasswd则应该替换为指向.htpasswd文件（后面详述该文档）的完整服务器路径。如果你不知道你网站空间的完整路径，请询问一下你的系统管理员。</p>
<h3><span style="color: #004080;"><strong><a id="3.2"></a>3.2.</strong><strong>密码保护的</strong><strong>.</strong><strong>h</strong><strong>tpasswd</strong><strong>文件</strong></span></h3>
<p>目录的密码保护比.htaccess的其他功能要麻烦些，因为你必须同时创建一个包含用户名和密码的文档，用于访问你的网站，相关信息（默认）位于一个名为.htpasswd的文档里。像.htaccess一样，.htpasswd也是一个没有文件名且具有8位扩展名的文档，可以放置在你网站里的任何地方（此时密码应加密），但建议你将其保存在网站Web根目录外，这样通过网络就无法访问到它了。</p>
<p>在使用.htaccess来设置目录的密码保护时，它包含了密码文件的路径。从安全考虑，有必要把.htaccess也保护起来，不让别人看到其中的内容。虽然可以用其他方式做到这点，比如文档的权限。不过，.htaccess本身也能做到，只需加入如下的指令：</p>
<blockquote><p><span style="color: #ff0000;"><strong>order </strong><strong>allow,deny</strong></span></p>
<p><strong><span style="color: #ff0000;">deny from all</span></strong></p></blockquote>
<h3><span style="color: #004080;"><strong><a id="3.3"></a>3.3.</strong><strong>配置</strong> <strong>.htaccess </strong><strong>输入用户名和密码</strong></span></h3>
<p><span style="color: #ff0000;">如果图省事此步骤可通过一个网站完成</span>:<a href="http://htaccesseditor.com/tc.shtml">製作.htaccess</a></p>
<p>要利用.htaccess对某个目录下的文档设定访问用户和对应的密码，首先要做的是生成一个.htpasswd的文本文档，例如：</p>
<blockquote><p><span style="color: #0080c0;">forge:y4E7Ec8e7EwV</span></p></blockquote>
<p>这里密码经过加密，用户可以自己找些工具将密码加密成.htaccess支持的编码。该文档最好不要放在www目录下，建议放在www根目录文档之外，这样更为安全些。</p>
<p>有了授权用户文档，可以在.htaccess中加入如下指令了：</p>
<blockquote><p><span style="color: #ff0000;"><strong>AuthUserFile</strong><strong> .</strong><strong>htpasswd的服务器目录</strong></span></p>
<p><span style="color: #ff0000;"><strong>AuthGroupFile</strong><strong> /dev/null （</strong><strong>需要授权访问的目录</strong><strong>）</strong></span></p>
<p><span style="color: #ff0000;"><strong>AuthName</strong> <strong>EnterPassword</strong></span></p>
<p><span style="color: #ff0000;"><strong>AuthType</strong><strong> Basic （</strong><strong>授权类型</strong><strong>）</strong></span></p>
<p><span style="color: #ff0000;"><strong>require user </strong><strong>wsabstract</strong><strong> （</strong><strong>允许访问的用户，如果希望表中所有用户都允许，可以使用</strong><strong> require valid-user）</strong></span></p></blockquote>
<p>注：括号部分为学习时候自己添加的注释</p>
<p>拒绝来自某个IP的访问</p>
<p>如果我不想某个政府部门访问到我的站点的内容，那可以通过.htaccess中加入该部门的IP而将它们拒绝在外。</p>
<p>例如：</p>
<blockquote><p><span style="color: #0080c0;">order allow,deny</span></p>
<p><span style="color: #0080c0;">deny from 210.10.56.32</span></p>
<p><span style="color: #0080c0;">deny from 219.5.45<strong>.</strong></span></p>
<p><span style="color: #0080c0;">allow from all</span></p></blockquote>
<p>第二行拒绝某个IP，第三行拒绝某个IP段，也就是219.5.45.0~219.2.45.255</p>
<p>想要拒绝所有人？用deny from all好了。不止用IP，也可以用域名来设定。</p>
<p>创建好.htpasswd文档后（可以通过文字编辑器创建），下一步是输入用于访问网站的用户名和密码，应为：</p>
<blockquote><p><span style="color: #ff0000;"><strong>username:password</strong></span></p></blockquote>
<p>“password”的位置应该是加密过的密码。你可以通过几种方法来得到加密过的密码：<strong>1、</strong>使用一个网上提供的permade脚本或自己写一个；<strong>2、</strong>很不错的username/password加密服务是通过KxS网站，这里允许你输入用户名及密码，然后生成正确格式的密码。</p>
<p>对于多用户，你只需要在.htpasswd文档中新增同样格式的一行即可。另外还有一些免费的脚本程序可以方便地管理.htpasswd文档，可以自动新增/移除用户等。</p>
<h3><span style="color: #004080;"><strong><a id="3.4"></a>3.4.</strong><strong>配置</strong><strong>.htaccess </strong><strong>直接访问加密网站</strong></span></h3>
<p>当你试图访问被.htaccess密码保护的目录时，你的浏览器会弹出标准的username/password对话窗口。如果你不喜欢这种方式，有些脚本程序可以允许你在页面内嵌入username/password输入框来进行认证，你也可以在浏览器的URL框内以以下方式输入用户名和密码（未加密的）：</p>
<p>http://username:password@www.w3sky.com/directory/</p>
<h3><span style="color: #004080;"><strong><a id="3.5"></a>3.5.</strong><strong>利用</strong> <strong>.htaccess </strong><strong>防止盗链</strong></span></h3>
<p>如果不喜欢别人在他们的网页上连接自己的图片、文档的话，也可以通过htaccess的指令来做到。</p>
<p>所需要的指令如下：</p>
<blockquote><p><span style="color: #0080c0;">RewriteEngine on</span></p>
<p><span style="color: #0080c0;">RewriteCond %{ HTTP_REFERER } !^$</span></p>
<p><span style="color: #0080c0;">RewriteCond %{ HTTP_REFERER } !^http://(www.)?w3sky.com/.*$ [NC]</span></p>
<p><span style="color: #0080c0;">RewriteRule .(gif &amp;line;jpg)$ &#8211; [F]</span></p></blockquote>
<p>如果觉得让别人的页面开个天窗不好看，那可以用一张图片来代替：</p>
<blockquote><p><span style="color: #0080c0;">RewriteEngine on</span></p>
<p><span style="color: #0080c0;">RewriteCond %{ HTTP_REFERER } !^$</span></p>
<p><span style="color: #0080c0;">RewriteCond %{ HTTP_REFERER } !^http://(www.)?w3sky.com/.*$ [NC]</span></p>
<p><span style="color: #0080c0;">RewriteRule .(gif &amp;line;jpg)$ http://www.w3sky.com/替代图片文件名 [R,L]</span></p></blockquote>
<h3><span style="color: #004080;"><strong><a id="3.6"></a>3.6.</strong><strong>利用</strong> <strong>.</strong><strong>htaccess</strong><strong>进行地址转向</strong></span></h3>
<p>这种方法，就是把yourdomain.com的流量全部301转向到www.yourdomain.com(或者反过来)。其实对于这种方法，国外有人认为对PageRank没有帮助。我觉得是因为他们看到Google管理员工具中有一个首选域工具，可以指定Google的爬虫把 www.yourdomain.com或者yourdomain.com作为抓取和排名的首选域，转向似乎就没有必要了。但确实又有不少人证实这是有效的，反正目前还没有人说这种方法会对SEO或者pagerank有什么损害。</p>
<p>在.htaccess中写入:</p>
<blockquote><p><span style="color: #0080c0;">Options +FollowSymlinks All -Indexes</span></p>
<p><span style="color: #0080c0;">rewriteEngine on</span></p>
<p><span style="color: #0080c0;">rewriteBase /</span></p>
<p><span style="color: #0080c0;">RewriteCond %{HTTP_HOST} ^domain.com$</span></p>
<p><span style="color: #0080c0;">RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]</span></p></blockquote>
<h3><span style="color: #004080;"><strong><a id="3.7"></a>3.7.</strong><strong>利用</strong> <strong>.</strong><strong>htaccess</strong><strong>对域名中</strong><strong>“www”</strong><strong>的控制</strong></span></h3>
<p>强制去除3w</p>
<p>下面以 WordPress 为例，其它的情况，可以自己参照解决。在你的 WordPress 目录下通常会有一个 .htaccess 文件，如果没有，那就手动建立一个。如果你设定了 permalink 的话，.htaccess 里面的内容会有如下一坨：</p>
<blockquote><p><span style="color: #0080ff;">&lt;IfModule mod_rewrite.c&gt;</span></p>
<p><span style="color: #0080ff;">RewriteEngine On</span></p>
<p><span style="color: #0080ff;">RewriteBase /</span></p>
<p><span style="color: #0080ff;">RewriteCond %{REQUEST_FILENAME} !-f</span></p>
<p><span style="color: #0080ff;">RewriteCond %{REQUEST_FILENAME} !-d</span></p>
<p><span style="color: #0080ff;">RewriteRule . /index.php [L]</span></p>
<p><span style="color: #0080ff;">&lt;/IfModule&gt;</span></p></blockquote>
<p>具体是啥意思咱就甭管它了，只管在 RewriteBase / 这行下面加上：</p>
<blockquote><p><span style="color: #0080c0;">RewriteCond %{HTTP_HOST} ^www.yourdomain.tld$ [NC]</span></p>
<p><span style="color: #0080c0;">RewriteRule ^(.*)$ http://yourdomain.tld/$1 [R=301,L]</span></p></blockquote>
<p>这样就大功告成了。当然要把 yourdomain.tld 换成你自己的域名。上面两行的意思是把www.yourdomain.tld 这种形式改写成 yourdomain.tld, 并把访问前者的所有链接永久转向到后者。</p>
<p>域名前强制加上www</p>
<p>如果你实在是坚持要把 www 加在前面，我上面的算是白写了，表示遗憾。但，你可以。只需把上面添加的两行代码改成这样：</p>
<blockquote><p><span style="color: #0080c0;">RewriteCond %{HTTP_HOST} ^yourdomain.tld$ [NC]</span></p>
<p><span style="color: #0080c0;">RewriteRule ^(.*)$ http://www.yourdomain.tld/$1 [R=301,L]</span></p></blockquote>
<h3><span style="color: #004080;"><strong><a id="4"></a>4. </strong><strong>.htaccess </strong><strong>总结</strong></span></h3>
<p>.htaccess是一个站点管理员可以应用的强大工具，有更多的变化以适应不同的用途，可以节约时间及提高网站的安全性</p>
<p><span style="color: #ff0000;"><strong>.htaccess</strong> <strong>的特别说明</strong></span></p>
<ul>
<li>启用.htaccess，需要修改httpd.conf，启用AllowOverride，并可以用AllowOverride限制特定命令的使用</li>
<li>如果需要使用.htaccess以外的其他文件名，可以用AccessFileName指令来改变。例如，需要使用.config ，则可以在服务器配置文件中按以下方法配置：</li>
</ul>
<blockquote><p><span style="color: #0080c0;">AccessFileName .config</span></p></blockquote>
<ul>
<li>一般情况下，不应该使用. htaccess文件，除非你对主配置文件没有访问权限。有一种很常见的误解，认为用户认证只能通过.htaccess文件实现，其实并不是这样，把用户认证写在主配置文件中是完全可行的，而且是一种很好的方法。.htaccess文件应该被用在内容提供者需要针对特定目录改变服务器的配置而又没有 root权限的情况下。如果服务器管理员不愿意频繁修改配置，则可以允许用户通过.htaccess文件自己修改配置，尤其是ISP在同一个机器上运行了多个用户站点，而又希望用户可以自己改变配置的情况下。虽然如此，一般都应该尽可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置，都可以放在主配置文件的&lt;Directory&gt;段中，而且更高效。避免使用.htaccess文件有两个主要原因，即性能和安全。</li>
</ul>
<p>相关文章:<ol>
<li><a href='http://chiidea.com/archives/292.html' rel='bookmark' title='重新制作404页面'>重新制作404页面</a></li>
<li><a href='http://chiidea.com/archives/479.html' rel='bookmark' title='.htaccess中常用的正则表达式'>.htaccess中常用的正则表达式</a></li>
<li><a href='http://chiidea.com/archives/805.html' rel='bookmark' title='WordPress Popular Posts插件2.1.3版乱码问题'>WordPress Popular Posts插件2.1.3版乱码问题</a></li>
<li><a href='http://chiidea.com/archives/29.html' rel='bookmark' title='新笔记本蓝屏问题'>新笔记本蓝屏问题</a></li>
<li><a href='http://chiidea.com/archives/439.html' rel='bookmark' title='都是折腾惹得祸'>都是折腾惹得祸</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://chiidea.com/archives/462.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>都是折腾惹得祸</title>
		<link>http://chiidea.com/archives/439.html</link>
		<comments>http://chiidea.com/archives/439.html#comments</comments>
		<pubDate>Wed, 16 Dec 2009 05:40:43 +0000</pubDate>
		<dc:creator>chiidea</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[应用软件]]></category>
		<category><![CDATA[电脑技巧]]></category>
		<category><![CDATA[网络相关]]></category>
		<category><![CDATA[TP-LINK]]></category>
		<category><![CDATA[wp]]></category>
		<category><![CDATA[迅雷]]></category>

		<guid isPermaLink="false">http://chiidea.com/?p=439</guid>
		<description><![CDATA[前天晚上，在看了一大堆书之后，那些东东颇为无聊。就想着找些事来做做，由于最近路由有时会突然链接不上，这关系到用电信漏洞无限上网的问题，考虑到能损害万恶的电信，一点是一点。于是想着刷一下路由的固件。下载、更新、导入旧的配置，一切那样地和谐。 路由重启之后，问题出现。首先，发现迅雷的用户登录不了，永远是“网络错误，请稍候再试！”。最初认为是迅雷网络的问题，可是用相同路由的同学顺利的登陆了，遂排除了迅雷网络和路由的问题，正是这一排除害我绕了一大圈。后来又发现很多问题，其中最无法忍受的是wordpress的后台始终进不去，始终在登陆界面循环。这个把我吓了一跳，不是wp或是服务器出了什么问题吧。把想到的方法都试了遍，依然是那个登陆界面，接近崩溃。 最后，把路由当作交换机，直接拨号上网。神奇一切正常了，迅雷也正常了。瞬间矛头又都指向了路由。后来证实用同一路由的同学之所以能登陆，与迅雷的版本有关，什么神奇的事情都凑到一块了！！ 总结一下自己遇到的问题： 迅雷登陆不了（与版本有关，出现问题的是5.9.12）； wordpress在登陆界面无限循环； 在网上需要输入验证码的地方基本都不行，提示什么验证码长度不对； 既然似乎路由的问题，那就那路由开刀，本想说通过设置路由搞定，不过似乎不太靠谱。最后只有将固件降级了。 我用的是TP-LINK的，TP-LINK的升级规则是在大版本之内是可以互刷的。例如，上图中都属v5是可以互刷，但是要从v5刷到v3是不行的。选择版本是重要的，根据我后来向官方询问的答复是“升级到特制版本了，导致某些应用不正常”，所以如果能用标准版的就不要下载特制版了。所谓的特制版是针对一些地区电信对路由进行封锁而产生的，说到底都怪电信赚钱赚疯了。 折腾来折腾去又回到了最初，不过生命不息，折腾不止嘛。 最后，痛斥一下电信的无耻行径。如今在各大大学内，上网业务几乎被电信独占，我们这的算法是50元1M带宽包月，30元5G流量月底清零（以前是不清零的），而且还进行了无聊的加密，一定要有特定的流氓软件拨号（不过此地电信连赚钱都懒了，所以拨号软件一直没有升级，所以还可以简单操作后用路由拨号共享上网。）。而学校外面同是电信10M带宽大约是一个月70元（我曾自己用过一个月）。当然老师们用的与我们不同，不但可以多人共用而且我初测大概是5M的带宽，而且相当便宜。不想说什么了我，这就是在垄断中的垄断。 相关文章: .htaccess中常用的正则表达式 .htaccess指南 又搬家老 3款实时网络同步工具对比 好处多多，快更换DNS服务器吧
相关文章:<ol>
<li><a href='http://chiidea.com/archives/479.html' rel='bookmark' title='.htaccess中常用的正则表达式'>.htaccess中常用的正则表达式</a></li>
<li><a href='http://chiidea.com/archives/462.html' rel='bookmark' title='.htaccess指南'>.htaccess指南</a></li>
<li><a href='http://chiidea.com/archives/507.html' rel='bookmark' title='又搬家老'>又搬家老</a></li>
<li><a href='http://chiidea.com/archives/816.html' rel='bookmark' title='3款实时网络同步工具对比'>3款实时网络同步工具对比</a></li>
<li><a href='http://chiidea.com/archives/837.html' rel='bookmark' title='好处多多，快更换DNS服务器吧'>好处多多，快更换DNS服务器吧</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://box.chiidea.com/image/098/dd9f675dae5a_A63B/wplogin.jpg"><img class="alignright" style="display: inline; margin-left: 0px; margin-right: 0px; border: 0px initial initial;" title="wp-login" src="http://box.chiidea.com/image/098/dd9f675dae5a_A63B/wplogin_thumb.jpg" border="0" alt="wp-login" width="235" height="145" align="right" /></a> 前天晚上，在看了一大堆书之后，那些东东颇为无聊。就想着找些事来做做，由于最近路由有时会突然链接不上，这关系到用电信漏洞无限上网的问题，考虑到能损害万恶的电信，一点是一点。于是想着刷一下路由的固件。下载、更新、导入旧的配置，一切那样地和谐。</p>
<p>路由重启之后，问题出现。首先，发现迅雷的用户登录不了，永远是“网络错误，请稍候再试！”。最初认为是迅雷网络的问题，可是用相同路由的同学顺利的登陆了，遂排除了迅雷网络和路由的问题，正是这一排除害我绕了一大圈。后来又发现很多问题，其中最无法忍受的是wordpress的后台始终进不去，始终在登陆界面循环。这个把我吓了一跳，不是wp或是服务器出了什么问题吧。把想到的方法都试了遍，依然是那个登陆界面，接近崩溃。</p>
<p>最后，把路由当作交换机，直接拨号上网。神奇一切正常了，迅雷也正常了。瞬间矛头又都指向了路由。后来证实用同一路由的同学之所以能登陆，与迅雷的版本有关，什么神奇的事情都凑到一块了！！</p>
<p>总结一下自己遇到的问题：</p>
<ol>
<li>迅雷登陆不了（与版本有关，出现问题的是5.9.12）；</li>
<li>wordpress在登陆界面无限循环；</li>
<li>在网上需要输入验证码的地方基本都不行，提示什么验证码长度不对；<span id="more-439"></span></li>
</ol>
<p>既然似乎路由的问题，那就那路由开刀，本想说通过设置路由搞定，不过似乎不太靠谱。最后只有将固件降级了。</p>
<p><a href="http://box.chiidea.com/image/098/dd9f675dae5a_A63B/tlwr340g.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="tl-wr340g " src="http://box.chiidea.com/image/098/dd9f675dae5a_A63B/tlwr340g_thumb.jpg" border="0" alt="tl-wr340g " width="269" height="145" /></a></p>
<p>我用的是TP-LINK的，TP-LINK的升级规则是在大版本之内是可以互刷的。例如，上图中都属v5是可以互刷，但是要从v5刷到v3是不行的。选择版本是重要的，根据我后来向官方询问的答复是“升级到特制版本了，导致某些应用不正常”，所以如果能用标准版的就不要下载特制版了。所谓的特制版是针对一些地区电信对路由进行封锁而产生的，说到底都怪电信赚钱赚疯了。</p>
<p>折腾来折腾去又回到了最初，不过生命不息，折腾不止嘛。</p>
<p>最后，痛斥一下电信的无耻行径。如今在各大大学内，上网业务几乎被电信独占，我们这的算法是50元1M带宽包月，30元5G流量月底清零（以前是不清零的），而且还进行了无聊的加密，一定要有特定的流氓软件拨号（不过此地电信连赚钱都懒了，所以拨号软件一直没有升级，所以还可以简单操作后用路由拨号共享上网。）。而学校外面同是电信10M带宽大约是一个月70元（我曾自己用过一个月）。当然老师们用的与我们不同，不但可以多人共用而且我初测大概是5M的带宽，而且相当便宜。不想说什么了我，这就是在垄断中的垄断。</p>
<p>相关文章:<ol>
<li><a href='http://chiidea.com/archives/479.html' rel='bookmark' title='.htaccess中常用的正则表达式'>.htaccess中常用的正则表达式</a></li>
<li><a href='http://chiidea.com/archives/462.html' rel='bookmark' title='.htaccess指南'>.htaccess指南</a></li>
<li><a href='http://chiidea.com/archives/507.html' rel='bookmark' title='又搬家老'>又搬家老</a></li>
<li><a href='http://chiidea.com/archives/816.html' rel='bookmark' title='3款实时网络同步工具对比'>3款实时网络同步工具对比</a></li>
<li><a href='http://chiidea.com/archives/837.html' rel='bookmark' title='好处多多，快更换DNS服务器吧'>好处多多，快更换DNS服务器吧</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://chiidea.com/archives/439.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>重新制作404页面</title>
		<link>http://chiidea.com/archives/292.html</link>
		<comments>http://chiidea.com/archives/292.html#comments</comments>
		<pubDate>Sat, 08 Aug 2009 07:23:00 +0000</pubDate>
		<dc:creator>chiidea</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[404]]></category>

		<guid isPermaLink="false">http://chiidea.com/?p=292</guid>
		<description><![CDATA[小博从blogger转到wordpress已经半个多月了，Sitiemap也提交了，不过搜索引擎始终未将新站的地址收入。倒是先前收入旧站的地址却依然坚挺，但由于网站转移造成固定链接不可避免地发生改变，于是通过搜索引擎来的流量大都是地址错误的，这些流量终将指向404页面。之前用blogger无权设置404页面，也就无需费心。现在到了wordpress，404页就成为主题模板的一部分了。而由于近期404页面可能还会常被调用，所以做合适的404页面显得更为重要。 一个404页面的用处，不单是为了留住流量，也不单是为了美观，更重要的是使之对搜索引擎友好。在搜索引擎搜索引擎通过HTTP状态码来识别网页的状态。当搜索引擎获得了一个错误链接时，网站应该返回404状态码，告诉搜索引擎放弃对该链接的索引。所以404页面也不能直接跳转至主页，不然主页将被搜索引擎当作404页面来对待，得不偿失。 wordpress的404页面是主题文件夹中，并不是在根目录下，也不需要在在.htaccess 文件中加入代码： ErrorDocument 404 /404.html。那么这么做的404是个摆设还是真的能返回404的HTTP状态码呢？对这件事的验证可以通过&#34;Server header checker&#34;来验证，这个工具可以获得所需页面返回的HTTP状态码。提供这项服务的网站有不少，我使用的是Web Rank Info提供的。以下是我输入小博一个莫须有的地址后获得的信息： 可见返回的HTTP状态码确是404。 既然返回的HTTP状态码没错，那么能做的就是只需修改一下模板中的404.php，做些美化、做些说明，希望能留住一些流量。 以下是本站新的404页面： 最后附上一些常见的HTTP返回码： 200 &#8211; 服务器成功返回网页 302 - 地址临时移动 503 &#8211; 服务器暂时不可用 404 &#8211; 请求的网页不存在 具体参见google网站管理员/站长 帮助。 相关文章: 十步学会用css建站——第三步：将网站分为五个div，网页基本布局的基础; 十步学会用css建站——第七步：网站头部图标与logo部分的设计； 十步学会用css建站——第九步：导航条的制作(较难)： 十步学会用css建站——第一步：规划网站，本教程将以图示为例构建网站； blogger导航栏的制作
相关文章:<ol>
<li><a href='http://chiidea.com/archives/9.html' rel='bookmark' title='十步学会用css建站——第三步：将网站分为五个div，网页基本布局的基础;'>十步学会用css建站——第三步：将网站分为五个div，网页基本布局的基础;</a></li>
<li><a href='http://chiidea.com/archives/15.html' rel='bookmark' title='十步学会用css建站——第七步：网站头部图标与logo部分的设计；'>十步学会用css建站——第七步：网站头部图标与logo部分的设计；</a></li>
<li><a href='http://chiidea.com/archives/17.html' rel='bookmark' title='十步学会用css建站——第九步：导航条的制作(较难)：'>十步学会用css建站——第九步：导航条的制作(较难)：</a></li>
<li><a href='http://chiidea.com/archives/7.html' rel='bookmark' title='十步学会用css建站——第一步：规划网站，本教程将以图示为例构建网站；'>十步学会用css建站——第一步：规划网站，本教程将以图示为例构建网站；</a></li>
<li><a href='http://chiidea.com/archives/4.html' rel='bookmark' title='blogger导航栏的制作'>blogger导航栏的制作</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>小博从blogger转到wordpress已经半个多月了，Sitiemap也提交了，不过搜索引擎始终未将新站的地址收入。倒是先前收入旧站的地址却依然坚挺，但由于网站转移造成固定链接不可避免地发生改变，于是通过搜索引擎来的流量大都是地址错误的，这些流量终将指向404页面。之前用blogger无权设置404页面，也就无需费心。现在到了wordpress，404页就成为主题模板的一部分了。而由于近期404页面可能还会常被调用，所以做合适的404页面显得更为重要。</p>
<p>一个404页面的用处，不单是为了留住流量，也不单是为了美观，更重要的是使之对搜索引擎友好。在搜索引擎搜索引擎通过HTTP状态码来识别网页的状态。当搜索引擎获得了一个错误链接时，网站应该返回404状态码，告诉搜索引擎放弃对该链接的索引。所以404页面也不能直接跳转至主页，不然主页将被搜索引擎当作404页面来对待，得不偿失。</p>
<p> <span id="more-292"></span>wordpress的404页面是主题文件夹中，并不是在根目录下，也不需要在在.htaccess 文件中加入代码： ErrorDocument 404 /404.html。那么这么做的404是个摆设还是真的能返回404的HTTP状态码呢？对这件事的验证可以通过&quot;Server header checker&quot;来验证，这个工具可以获得所需页面返回的HTTP状态码。提供这项服务的网站有不少，我使用的是<a href="http://www.webrankinfo.com/english/tools/server-header.php">Web Rank Info</a>提供的。以下是我输入小博一个莫须有的地址后获得的信息：<img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="404-test" border="0" alt="404-test" src="http://box.chiidea.com/image/097/4be0c84d813e_1473B/404test.jpg" width="404" height="286" />
</p>
<p>可见返回的HTTP状态码确是404。</p>
<p>既然返回的HTTP状态码没错，那么能做的就是只需修改一下模板中的404.php，做些美化、做些说明，希望能留住一些流量。</p>
<p>以下是本站新的404页面：</p>
<p><a href="http://chiidea.com/404" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="404" border="0" alt="404" src="http://box.chiidea.com/image/097/4be0c84d813e_1473B/404.jpg" width="404" height="254" /></a></p>
<p>最后附上一些常见的HTTP返回码：</p>
<ul>
<li><strong>200</strong> &#8211; 服务器成功返回网页 </li>
<li><strong>302 </strong>- 地址临时移动 </li>
<li><strong>503</strong> &#8211; 服务器暂时不可用 </li>
<li><strong>404</strong> &#8211; 请求的网页不存在 </li>
</ul>
<p>具体参见<a href="http://www.google.com/support/webmasters/bin/answer.py?hl=cn&amp;answer=40132" target="_blank">google网站管理员/站长 帮助</a>。</p>
<p>相关文章:<ol>
<li><a href='http://chiidea.com/archives/9.html' rel='bookmark' title='十步学会用css建站——第三步：将网站分为五个div，网页基本布局的基础;'>十步学会用css建站——第三步：将网站分为五个div，网页基本布局的基础;</a></li>
<li><a href='http://chiidea.com/archives/15.html' rel='bookmark' title='十步学会用css建站——第七步：网站头部图标与logo部分的设计；'>十步学会用css建站——第七步：网站头部图标与logo部分的设计；</a></li>
<li><a href='http://chiidea.com/archives/17.html' rel='bookmark' title='十步学会用css建站——第九步：导航条的制作(较难)：'>十步学会用css建站——第九步：导航条的制作(较难)：</a></li>
<li><a href='http://chiidea.com/archives/7.html' rel='bookmark' title='十步学会用css建站——第一步：规划网站，本教程将以图示为例构建网站；'>十步学会用css建站——第一步：规划网站，本教程将以图示为例构建网站；</a></li>
<li><a href='http://chiidea.com/archives/4.html' rel='bookmark' title='blogger导航栏的制作'>blogger导航栏的制作</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://chiidea.com/archives/292.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

