<?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; 301</title>
	<atom:link href="http://cnzhx.net/blog/tag/301/feed/" rel="self" type="application/rss+xml" />
	<link>http://cnzhx.net</link>
	<description>Just notes about something I&#039;m interested in</description>
	<lastBuildDate>Mon, 06 Sep 2010 13:07:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>安全修改WordPress网站永久链接地址形式</title>
		<link>http://cnzhx.net/blog/articles/safely-change-permalinks-of-wordpress/</link>
		<comments>http://cnzhx.net/blog/articles/safely-change-permalinks-of-wordpress/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 15:07:53 +0000</pubDate>
		<dc:creator>lonelicloud</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[SEO]]></category>
		<guid isPermaLink="false">http://cnzhx.net/?p=1942</guid>
		<description><![CDATA[WordPress 永久链接地址形式美观，样式多变。为了改变WordPress地址形式，我们往往需要采取一些非常规手段。因为不光是修改地址并且进行旧到新的301跳转就行了，最好还要修改文章中引用的链接地址。好在并不是不可行，我已经在升级到WordPress 3.0多站点模式的时候顺便将永久链接地址改变了。通过这几天的观察来看，方法很成功。下面就将我的方法分享给大家。]]></description>
			<content:encoded><![CDATA[<p>WordPress 永久链接（Permalink）地址形式美观，样式多变。我已经在<a href="http://cnzhx.net/blog/articles/upgrade-to-wp30-multisite-subdirectory/">升级到WordPress 3.0多站点模式</a>的时候顺便将永久链接地址改变了。通过这几天的观察来看，方法很成功。如果你想同时替换本站引用的内部文章的链接地址，请参考“<a href="http://cnzhx.net/blog/articles/regexp-change-wordpress-uri/">使用正则表达式批量搜索替换文章内部链接（URI）</a>”。</p>
<p><span id="more-1942"></span>对于刚接触自己建站的新手来讲，并不知道使用什么样的永久链接地址有什么不同。为了美观，一般都会使用WordPress默认的某个样式。像我开始就选了“<strong>../年/月/日/文章名</strong>”的形式，可是后来想想，每篇文章上面都会有发表日期的，何必在地址上再加上个日期？然后又看到人们说搜索引擎不喜欢太长太深的地址。可如果你厌烦了某一种样式，想改变一下，却往往并不敢立即下手。因为既然是永久链接地址，就意味着以前别人引用的、搜索引擎收录的你的文章的链接是你无法改变的，如果你动了它，别人通过以前的链接访问你的文章就会出现404错误，当然还会影响你的PR。</p>
<p>例如我将以前的链接地址形式：http://cnzhx.net/blog/2010/01/01/post-name/ 修改为 http://cnzhx.net/blog/articles/post-name/，进行的操作分为3小步，整个过程基本上不会影响网站的正常访问。</p>
<p><strong>1、安装辅助插件</strong></p>
<p><a href="http://wordpress.org/extend/plugins/">WordPress插件网站</a>上提供了不少帮助你修改永久链接地址的插件，可以让你在改变文章地址后别人包括搜索引擎仍然能够通过旧的地址正确地找到你的文章。我这里推荐 <a href="http://wordpress.org/extend/plugins/permalinks-migration-plugin-for-wordpress/">Dean&#8217;s Permalinks Migration</a>。该插件简单（只有一个php文件）、有效（看我现在的网站有没有死链）。</p>
<p>先安装好并激活，等下再配置使用。</p>
<p>当然你也可以安装一个超级插件（比较大，功能也比较多），<a href="http://wordpress.org/extend/plugins/platinum-seo-pack/">Platinum SEO Pack</a>（一个全功能的SEO工具包）。它可以对你进行的任何永久链接变化自动进行301跳转，也就是说你可以在任何时候，进行任意次的永久链接改变，它都能记录并进行正确的跳转。</p>
<p><strong>2、修改永久链接</strong></p>
<p>按照你的规划，在WordPress管理控制台的“<strong>设置（Settings）——&gt;永久链接（Permalinks）</strong>”里对文章链接形式进行修改。比如我前面提到的修改就是将</p>
<blockquote><p>/%year%/%monthnum%/%day%/%postname%/</p></blockquote>
<p>修改为</p>
<blockquote><p>/articles/%postname%/</p></blockquote>
<p>修改完毕单击最下面的保存即可。这样你的网站里的所有活动链接（动态产生的链接，比如文章标题链接等）应该都已经有了最新的形式。</p>
<p><strong>3、设置永久链接迁移插件</strong>Dean&#8217;s  Permalinks Migration</p>
<p>赶紧进入“<strong>设置（Settings）——&gt;永久链接迁移（PermalinksMigration）</strong>”，速度越快越好，避免造成别处的链接因为是旧形式而导致无法找到正确目标。</p>
<p>在上面的空框里输入旧的链接形式。如果是WordPress 3.0的多站点模式，还需要在前面加上站点的地址，如主站点是 /blog，其它站点就是其别名（slug）。见下图1，其中 /blog 是我的主站点的文章链接基地址，后面是原来的链接形式。</p>
<div id="attachment_1947" class="wp-caption aligncenter" style="width: 522px"><a href="http://cnzhx.net/wp-content/uploads/2010/06/1_permalinks_migration_setting.png"><img class="size-full wp-image-1947" title="1_permalinks_migration_setting" src="http://cnzhx.net/wp-content/uploads/2010/06/1_permalinks_migration_setting.png" alt="" width="512" height="148" /></a><p class="wp-caption-text">图1 Dean&#39;s Permalinks Migration设置</p></div>
<p>完成后单击左下角的“<strong>Update options</strong>”即可。</p>
<p>现在可以用原来的某个文章地址打开看看是不是已经可以正确的跳转了。如果不行，就按照前面 2 的方法将permalinks形式该回去并保存设置，然后再改回来并保存。这时候应该就可以了。</p>
<p>实际上这样并不足够，因为以前编辑的页面和文章里多半会引用自己站里的文章，那时候用的是旧的永久链接。使用永久链接迁移插件或者SEO工具插件并不会修改那些链接，而仅仅是替你做个301跳转，好让人可以通过原来的地址正确的找到文章。可是每次进行301跳转也挺麻烦的，还要耗一些不必要的资源。那么我们就可以将引用的内部文章的链接地址也想法子改掉，请参考“<a href="http://cnzhx.net/blog/articles/regexp-change-wordpress-uri/">使用正则表达式批量搜索替换文章内部链接（URI）</a>”。</p>
<p>转载请注明：来自<a href="http://cnzhx.net/">不存在的空间</a>，  作者<a href="http://cnzhx.net/about/">lonelicloud</a>。<br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://cnzhx.net/blog/articles/preload-the-cache-in-wp-super-cache/' title='预加载（Preload）WP Super Cache缓存'>预加载（Preload）WP Super Cache缓存</a></li>
<li><a href='http://cnzhx.net/blog/articles/upgrade-to-wp30-multisite-subdirectory/' title='升级至WordPress 3.0多站点模式'>升级至WordPress 3.0多站点模式</a></li>
<li><a href='http://cnzhx.net/blog/articles/update-to-wordpress-3-0-multisite-problem/' title='升级到WordPress 3.0多站点模式问题探索'>升级到WordPress 3.0多站点模式问题探索</a></li>
<li><a href='http://cnzhx.net/blog/articles/speed-up-website-built-with-wordpress-plus-k2-theme/' title='给基于WordPress + K2 Theme的网站加速'>给基于WordPress + K2 Theme的网站加速</a></li>
<li><a href='http://cnzhx.net/blog/articles/notice-change-blog-link/' title='广而告之：变更博客链接'>广而告之：变更博客链接</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://cnzhx.net/blog/articles/safely-change-permalinks-of-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>升级至WordPress 3.0多站点模式</title>
		<link>http://cnzhx.net/blog/articles/upgrade-to-wp30-multisite-subdirectory/</link>
		<comments>http://cnzhx.net/blog/articles/upgrade-to-wp30-multisite-subdirectory/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 15:10:33 +0000</pubDate>
		<dc:creator>lonelicloud</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[MultiSite]]></category>
		<category><![CDATA[升级]]></category>
		<guid isPermaLink="false">http://cnzhx.net/?p=1932</guid>
		<description><![CDATA[考虑到WordPress 3.0支持的多站点（MultiSite）特性，并且本网站需要经常更换服务器而需要将安装的几个独立WP博客合并到一个WordPress安装里，前几天经过仔细探索确定了可能出现的问题，制定了本站点的升级计划并成功实施，目前尚未发现任何问题。特将升级步骤写出来与大家分享。本文讨论的是以子目录（sub-directory）形式启用Network功能，可以作为以子域名（sub-domain）形式启用Network功能的参考。]]></description>
			<content:encoded><![CDATA[<p>考虑到WordPress 3.0支持的多站点（MultiSite）特性，并且本网站<a href="http://cnzhx.net/blog/articles/have-to-move-again/">需要经常更换服务器</a>而需要将安装的几个独立WP博客合并到一个WordPress安装里，前几天经过<a href="http://cnzhx.net/blog/articles/update-to-wordpress-3-0-multisite-problem/">仔细探索确定了可能出现的问题</a>，制定了本站点的升级计划并成功实施，目前尚未发现任何问题。特将升级步骤写出来与大家分享。本文讨论的是以子目录（sub-directory）形式启用Network功能，可以作为以子域名（sub-domain）形式启用Network功能的参考。<br />
<span id="more-1932"></span>请大家包涵，这篇文章引用太多了，不过如果不引用，编辑起来太麻烦了，文章太长。而且，如果你知道怎么操作的话就不用看那些引用文章了。</p>
<h4>一、背景介绍</h4>
<p>先介绍一下基本情况，好让大家对我的升级步骤有更好的理解。</p>
<p>本来我的网站有2个WordPress安装，一个是主博客，在/blog目录下（文章较多），一个在/photonics 目录下（文章较少）；另外还有一个WordPress MU安装在/blogs目录下（文章较少）。（都是相对于服务器根目录。）</p>
<p>我需要<strong>在服务器根目录下安装WordPress 3.0，然后将/blog里的博客导入为其主站点</strong>，在建立其它几个站点分别给原来/photonics下的博客和原来WordPress MU里的每个博客。</p>
<p>考虑到原来/blog下的博客文章和设置较多，而WordPress 3.0又支持从WordPress 2.9.2直接升级，并且升级之后还可以开启多站点模式。所以计划从/blog里的那个WordPress安装进行升级，然后将其它几个文章少的博客使用WordPress自带的导入工具导入。（实际上也可以通过导入数据库来导入这些博客，但是考虑到操作数据库比较繁琐（请参考文章 <a href="http://blog.mixu.net/2010/05/23/upgrading-moving-wordpress-2-9-installs-to-multisite-wp-3-0/">Upgrading / moving WordPress 2.9 installs to multisite WP 3.0</a>），而文章又很少，就直接用这个工具了。）</p>
<p>另外，因为我是将/blog目录下的WordPress博客升级到根目录下的WordPress 3.0主博客，有些地方跟从别的目录如/other或者本来就是根目录下升级到根目录下的操作有些不同，我会在<strong>括号（[...]）</strong>中注明，请看仔细，并请在执行前阅读“<a href="http://cnzhx.net/blog/articles/update-to-wordpress-3-0-multisite-problem/">升级到WordPress 3.0并开启多站点模式时可能出现的问题</a>”。</p>
<h4>二、详细步骤</h4>
<p><strong>1、将/blog （[或者/other]） 里的文件全部复制到根目录 （[如果本来就在根目录则不需要复制]）</strong></p>
<p>将/blog里的文件复制出来，暂时不动/blog里的东西，可以保证在你进行升级的时候不妨碍原来/blog里的WordPress安装的访问。但是为了做到这一点，还需要将数据库也另外复制一份（如果你所在的服务器只支持一个数据库，恐怕就做不到这一点了，请直接跳到第2步继续下一步操作）。</p>
<p>复制数据库的方法：</p>
<p style="padding-left: 30px;">a、登录到服务器提供的数据库管理后台，选择原来的数据库进行备份（请参考<a href="http://codex.wordpress.org/zh-cn:WordPress_%E5%A4%87%E4%BB%BD">WordPress中文codex</a>）；</p>
<p style="padding-left: 30px;">b、新建一个数据库，将备份文件导入到新数据库中；</p>
<p>然后：</p>
<p style="padding-left: 30px;">a、修改刚才复制到根目录的WordPress的config.php文件使之使用新数据库（只需要将数据库名称替换为这个新建的就可以了）。</p>
<p style="padding-left: 30px;">b、修改这个新建的数据库表 wp_options 中 id=2 的记录  siteurl 的值修改为域名根目录，这里是去掉后面的文件夹路径 blog。如图1 和图2。</p>
<div id="attachment_1933" class="wp-caption aligncenter" style="width: 248px"><a href="http://cnzhx.net/wp-content/uploads/2010/06/1_wp_options_open.png"><img class="size-full wp-image-1933 " title="1_wp_options_open" src="http://cnzhx.net/wp-content/uploads/2010/06/1_wp_options_open.png" alt="" width="238" height="26" /></a><p class="wp-caption-text">图1 点击图中红框位置打开数据库表 wp_options</p></div>
<div id="attachment_1934" class="wp-caption aligncenter" style="width: 465px"><a href="http://cnzhx.net/wp-content/uploads/2010/06/2_wp_options_id2.png"><img class="size-full wp-image-1934  " title="2_wp_options_id2" src="http://cnzhx.net/wp-content/uploads/2010/06/2_wp_options_id2.png" alt="" width="455" height="67" /></a><p class="wp-caption-text">图2 点击红框位置打开记录修改siteurl为新址（去掉后面的目录路径只留域名部分）</p></div>
<p style="padding-left: 30px;">c、登录这个复制的WordPress的管理后台（如果你以前没有修改别的东西，直接访问自己的域名应该就可以打开这个复制的博客），并修改“<strong>设置（settings）——&gt;一般设置（General）</strong>”中的博客地址为新地址（域名，即去掉原来的目录路径）。此时你会发现已发表的文章路径中的/blog （[或/other]）已经不见了，WordPress已经自动更新了链接地址，但是文中的引用本博客的地址并没有更新，暂时不用管它。</p>
<p>现在，你就有了一个位于根目录的原来的博客的备份。下面的操作将针对这个备份，以防止丢失以前的数据。（[另外，如果你本来就安装在根目录，请在操作前备份数据库和全部网站文件，以备不时之需。]）</p>
<p><strong>2、使用WordPress 3.0文件覆盖全部复制的这个WordPress的文件并执行升级</strong></p>
<p>使用新版本WordPress 3.0的文件覆盖原WordPress的这一步相当于我们以前执行的手动升级WordPress的操作，请参考<a href="http://codex.wordpress.org/zh-cn:%E5%8D%87%E7%BA%A7WordPress">WordPress中文codex</a>。</p>
<p>文件上传完毕后可以直接打开这个基于新版本WordPress的博客，但是还需要登录到其管理控制台<strong>升级数据库</strong>。登录后会有页面提示升级，直接点击链接进行升级即可，完成后点击“<strong>Complete update</strong>”就完成了升级工作。</p>
<p><strong>3、开启 WordPress 3.0 多站点（MultiSite）功能</strong></p>
<p>请参考我的另两篇文章：<a href="http://cnzhx.net/blog/articles/using-wordpress-30/">试用WordPress 3.0</a> 和 <a href="http://cnzhx.net/blog/articles/wordpress-30-release-candidate/">WordPress 3.0 放出RC1版本</a>。其中也提到了中文化的问题（目前的RC版本没有中文语言包）。</p>
<p><span style="color: #990000;"><strong>特别提示：</strong></span></p>
<p style="padding-left: 30px;">a、请在开启WordPress 3.0多站点功能前先禁用所有插件。</p>
<p style="padding-left: 30px;">b、因为是从原来的博客升级而来，需要<a href="http://cnzhx.net/blog/articles/wordpress-3-0-force-enable-sub-directory-multisite/">强制WordPress 3.0以子目录形式安装多站点功能</a>，原因请参考“<a href="http://cnzhx.net/blog/articles/update-to-wordpress-3-0-multisite-problem/">升级到 WordPress 3.0多站点模式问题探索</a>”。</p>
<p><strong>4、登入后台进行必要的设置</strong></p>
<p>比如重新启用插件、设置永久链接（Permalink）等。</p>
<p>如果你将这里的永久链接设置的形式跟之前升级而来的博客的永久链接形式一样，可以为后面减少一些麻烦。</p>
<p>但如果你固执地要更改permalink形式也不是不可以，我就这么做了。当然，你也可以等到全部完成之后再来改这个永久链接，没必要一下子做太多事情，搞得自己手忙脚乱。呵呵，我已经尝试过了。请参考“安全修改WordPress网站永久链接形式”。（呵呵，准备写，估计明天可以发出来）</p>
<p><strong>5、修正分类页面Category和标签Tag页面的固定链接</strong></p>
<p>升级到多站点模式之后，有些地方的固定链接发生了变化，需要手动修订。</p>
<p style="padding-left: 30px;">a、如果原来是 /blog 目录下的安装，原来的分类页和标签页的固定链接是</p>
<blockquote>
<p style="padding-left: 30px;">cnzhx.net/blog/category/…</p>
<p style="padding-left: 30px;">cnzhx.net/blog/tag/…</p>
</blockquote>
<p style="padding-left: 30px;">的形式（仍是以我的操作为例）。此时为了保持链接不变，只要在管理控制台的“<strong>设置（settings）——&gt;永久链接（Permalink）</strong>”页面进行相应设置即可。如下图，给Category和Tag分别加上相应的根路径。这样一来， Category 和 Tag 的路径就跟原来在/blog下的安装一样了。</p>
<p style="padding-left: 30px; text-align: left;">
<div id="attachment_1935" class="wp-caption aligncenter" style="width: 456px"><a href="http://cnzhx.net/wp-content/uploads/2010/06/3_cat_tag_permalink.png"><img class="size-full wp-image-1935 " title="3_cat_tag_permalink" src="http://cnzhx.net/wp-content/uploads/2010/06/3_cat_tag_permalink.png" alt="" width="446" height="132" /></a><p class="wp-caption-text">图3 修改category 和 tag 页面的永久链接</p></div>
<p style="padding-left: 30px;">b、如果原来是 /other 目录下的安装，则原来的链接分别是</p>
<blockquote>
<p style="padding-left: 30px;">cnzhx.net/other/category/…</p>
<p style="padding-left: 30px;">cnzhx.net/other/tag/…</p>
</blockquote>
<p style="padding-left: 30px;">此时<strong>应该先进行类似 a、中提到的操作，然后在 .htaccess 文件中设置 301 跳转</strong>：</p>
<blockquote>
<p style="padding-left: 30px;"># change blog dir</p>
<p style="padding-left: 30px;">#其中后面的/blog路径是WordPress 3.0默认的主博客的路径</p>
<p style="padding-left: 30px;">Redirect 301  /other/category  /blog/category</p>
<p style="padding-left: 30px;">Redirect 301  /other/tag  /blog/tag</p>
</blockquote>
<p style="padding-left: 30px;">将上面的代码中的 other 修改为你之前的WordPress安装路径，然后将该代码加入服务器根目录下的 .htaccess 文件中靠前的位置（必须在 WordPress 重写规则代码前面）即可。</p>
<p style="padding-left: 30px;">c、如果原来是根目录安装，则原来的链接分别是</p>
<blockquote>
<p style="padding-left: 30px;">cnzhx.net/category/…</p>
<p style="padding-left: 30px;">cnzhx.net/tag/…</p>
</blockquote>
<p style="padding-left: 30px;">此时<strong>仍然应该先进行类似 a、中提到的操作，然后在 .htaccess 文件中设置  301 跳转</strong>：</p>
<blockquote>
<p style="padding-left: 30px;"># change blog dir</p>
<p style="padding-left: 30px;">#其中后面的/blog路径是WordPress 3.0默认的主博客的路径</p>
<p style="padding-left: 30px;">Redirect 301 /category  /blog/category</p>
<p style="padding-left: 30px;">Redirect 301 /tag  /blog/tag</p>
</blockquote>
<p style="padding-left: 30px;">将该代码加入服务器根目录下的 .htaccess  文件中靠前的位置（必须在 WordPress 重写规则代码前面）即可。</p>
<p><span style="color: #990000;"><strong>特别提示：</strong></span></p>
<p style="padding-left: 30px;">虽然这一节里提到的每次设置的301跳转的代码形式差不多，但是却不能简单的以类似于下面</p>
<blockquote style="padding-left: 30px;"><p>Redirect 301  /other  /blog</p></blockquote>
<p style="padding-left: 30px;">的形式替代，否则会影响到文章链接的解析。</p>
<p><strong>6、修正静态页面 page 页面的固定链接</strong></p>
<p>类似于上面的第5步。</p>
<p>原来的页面链接形式为 <code>http://yourdomain.com/blog/top-pageurl/second-level-page/...</code>，改为现在的安装后，页面链接形式为：<code>http://yourdomain.com/top-pageurl/second-level-page/...</code>。同样可以通过在根目录的.htaccess文件中设置301跳转来更正链接地址。并且你需要为每个顶级页面（top-pageurl）设置一个对应的跳转（次级及以下的页面（second-level-page等）就不用设置了）。例如：</p>
<blockquote><p># 301 redirect old pages to new pages</p>
<p>redirect 301 /blog/top-page-url1/ /top-page-url1/</p>
<p>redirect 301 /blog/top-page-url2/ /top-page-url2/</p>
<p>…</p>
<p>#有多少写多少，不过，应该不是很多吧？</p></blockquote>
<p>将该代码加入服务器根目录下的 .htaccess  文件中靠前的位置（必须在 WordPress 重写规则代码前面）即可。</p>
<p><strong>7、修正附件链接地址</strong></p>
<p>相信很多人会在博客中上传图片等附件，如果你的附件是通过WordPress编辑器上传的，那么默认是存储在/blog/wp-content/uploads/中的（[或者 /other/wp-content/uploads/，或者/wp-content/uploads/中]）。跟8的方法一样，需要设置301跳转（[/wp-content/uploads/的那个就不用设置跳转了，位置没变]）直接给出结果：</p>
<blockquote><p># 301 redirect old attachments to new attachments</p>
<p>redirect 301 /blog/wp-content/uploads/ /wp-content/uploads/</p></blockquote>
<p>（[ 或者</p>
<blockquote><p># 301 redirect old attachments to new attachments</p>
<p>redirect 301 /other/wp-content/uploads/ /wp-content/uploads/</p></blockquote>
<p>]）</p>
<p><strong>8、通过操作数据库更新文章中引用的原博客内容和附件的链接地址</strong></p>
<p>文章中引用的原博客内容我们往往都会给出链接让读者可以直接点击，这就会产生一个html代码段，其中包含了原博客中内容的链接地址，这个地址不会自动更新，需要通过数据库操作进行更新。同时，原来的文章中的附件也有类似的地址，也需要更新。更新方法请参考文章“<a href="http://cnzhx.net/blog/articles/transfer-domain-of-a-blog/">blog域名迁移之迁移wordpress</a>”，更新URI的方法是一样的。</p>
<p>当然，不更新的话不会影响访问，因为我们前面已经设置了301跳转。可是既然有方法更新，何必让服务器每次碰到这样的东西都跳转一下呢，那是要花时间的，不管这个时间有多短。</p>
<p><strong>9、完成！</strong></p>
<p>到这里基本上就已经完成了升级过程了，其它一些细枝末节的设置问题我就不多啰嗦了。剩下的几个博客都是利用WordPress的导入功能导入的，没什么好说的，如果非要看看我是怎么做的，请参考“<a href="http://cnzhx.net/blog/articles/update-to-wordpress-3-0-multisite-problem/">升级到 WordPress 3.0多站点模式问题探索</a>”。</p>
<p><strong>后记：</strong></p>
<p>虽然文中引用了很多之前写过的文章，虽然有我前两天升级过程中用Word做的笔记做支撑，编写这篇文章还是花了我 4 个多小时的时间。今天晚上全搞这个了。请大家多多支持我的网站，至少，也应该在转载的时候注明“来自<a href="http://cnzhx.net/">不存在的空间</a>， 作者<a href="http://cnzhx.net/about/">lonelicloud</a>”之类的吧。谢谢！<br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://cnzhx.net/blog/articles/update-to-wordpress-3-0-multisite-problem/' title='升级到WordPress 3.0多站点模式问题探索'>升级到WordPress 3.0多站点模式问题探索</a></li>
<li><a href='http://cnzhx.net/blog/articles/safely-change-permalinks-of-wordpress/' title='安全修改WordPress网站永久链接地址形式'>安全修改WordPress网站永久链接地址形式</a></li>
<li><a href='http://cnzhx.net/blog/articles/wordpress-3-0-force-enable-sub-directory-multisite/' title='强制WordPress 3.0以子目录形式安装多站点功能'>强制WordPress 3.0以子目录形式安装多站点功能</a></li>
<li><a href='http://cnzhx.net/blog/articles/automatic-upgrade-wordpress-and-plugin/' title='自动升级WordPress和其插件'>自动升级WordPress和其插件</a></li>
<li><a href='http://cnzhx.net/blog/articles/automatic-upgrade-to-wordpress/' title='自动升级Wordpress的问题及解决'>自动升级Wordpress的问题及解决</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://cnzhx.net/blog/articles/upgrade-to-wp30-multisite-subdirectory/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>升级到WordPress 3.0多站点模式问题探索</title>
		<link>http://cnzhx.net/blog/articles/update-to-wordpress-3-0-multisite-problem/</link>
		<comments>http://cnzhx.net/blog/articles/update-to-wordpress-3-0-multisite-problem/#comments</comments>
		<pubDate>Mon, 31 May 2010 15:21:31 +0000</pubDate>
		<dc:creator>lonelicloud</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[MultiSite]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[升级]]></category>
		<category><![CDATA[域名]]></category>
		<category><![CDATA[安装]]></category>
		<guid isPermaLink="false">http://cnzhx.net/?p=1887</guid>
		<description><![CDATA[本文主要总结开启多站点模式可能会遇到的问题。如果站点本来是单博客模式而不是WordPress MU，在升级到WordPress 3.0多站点（Multisite）模式时会有一些问题。因为打算精简站点文件方便搬家，这几天做了一些测试，根据我的实践做一些记录，备忘。]]></description>
			<content:encoded><![CDATA[<p>本文主要总结开启多站点模式可能会遇到的问题。如果站点本来是单博客模式而不是WordPress MU，在升级到WordPress 3.0多站点（Multisite）模式时会有一些问题。因为<a href="http://cnzhx.net/blog/articles/have-to-move-again/">打算精简站点文件方便搬家</a>，这几天做了一些测试，根据我的实践做一些记录，备忘。</p>
<p><span id="more-1887"></span>WordPress 3.0多站点（Multisite）模式默认是不开启的。单博客模式升级到WordPress 3.0模式自然默认也是升级到单博客模式。不过相信有很多朋友跟我一样，升级之后还想<a href="http://cnzhx.net/blog/articles/using-wordpress-30/">开启多站点模式</a>。但是从已有的博客升级到多站点模式会有一些问题，例如：</p>
<h4>1、子域名（Sub-Domain）还是子目录（Sub-Directory）的问题</h4>
<p>多站点模式的WordPress 3.0与之前的WordPress MU一样，都支持使用子域名来标记每个站点（博客）。<strong>子域名（Sub-Domain）</strong>方式，也就是使用形如 <strong>subdomain.domain.tld</strong> 的地址（链接）形式来标记每个站点。而使用<strong>子目录（Sub-Directory）</strong>方式，也就是使用形如 (www.)<strong>domain.tld/siteslug</strong> 的地址形式来标记每个站点，其中 <strong>/siteslug</strong> 就是该站点相对于根域名的站内链接地址，而不是站点内的一个目录。这样的话，如果你本来有个名字叫 siteslug 的目录在主机的根目录下，它们的链接地址都是 domain.tld/siteslug，这就有冲突了。而且实际上主机在解析地址的时候会优先考虑目录而不是通过 mod_rewrite 得到站点地址。这就导致你能访问目录 siteslug 中的文件或程序，却无法访问以 siteslug 为地址的站点。那么你访问该站点的时候就会报错，或者直接转到目录siteslug下的某个对应目录了（如果有的话）。</p>
<p>虽然用子域名让每个站点地址显得很好看，但是它要求主机支持泛域名解析，也就是你要在域名设置中增加一个A记录将 *.domain.tld 泛解析到 (www.)domain.tld。不过很多免费空间并不支持泛域名解析，那样的话你就只能使用子目录形式来开启多站点模式了。</p>
<h4>2、既不能用子域名也不能用子目录的问题</h4>
<p>实际上这个问题提的不太对，因为我们总能找到解决问题的办法，没有绝不可能之说。但问题是，如果你本来的WordPress安装在<strong>根目录</strong>，升级后开启多站点模式时安装脚本会提示你<strong>只能</strong>使用<strong>子域名（Sub-Domain）</strong>方式， 提示说这是为了避免新的多站点系统的某些链接地址与原来的地址发生冲突，如前所述。该问题曾在WordPress 3.0的开发讨论区引起了比较多的讨论。目前已经拿出了并不完美且很保守的处理方案，那就是在用户开启多站点模式的时候加入一些条件判断，并相应的给出警告。这些警告在完成升级后通过“<strong>工具（Tools）——&gt;网络（Network）</strong>”试图开启多站点模式时会看到。但遗憾的是，为了保守起见，开发人员设定为如果满足某个条件则直接启用某种安装形式，而不会让你选择。</p>
<p>比如，如果你是升级而来，并不是全新安装，那么开启多站点模式的时候程序就会提示你“<strong>由于您的程序不是全新安装，您网络中的站点需要以子域名方式安装</strong>”，此时就根本没有选择的余地。那么，如果你的主机或域名不支持泛域名解析呢？或者你只想用子目录的方式安装呢？这不就没得选了？</p>
<p>这种时候，我们需要修改程序代码来使得开发人员添加的判断失效，让你可以忽略链接地址冲突的问题而强制直接以子目录形式安装多站点模式。请参考文章“<a title="Permalink to 强制WordPress 3.0以子目录形式安装多站点功能" rel="bookmark" href="http://cnzhx.net/blog/articles/wordpress-3-0-force-enable-sub-directory-multisite/">强制WordPress 3.0以子目录形式安装多站点功能</a>”。</p>
<h4>3、链接地址重定向的问题</h4>
<p>结合前述1和2两个问题，如果你强制以子目录形式安装多站点功能的话，就涉及到将原来的地址重定向到新地址的问题。要不然你可就丢了之前的PR，Google还会给你提示一大堆的无法访问的链接。这又是每个人都不希望看到的。这时候就需要利用301重定向功能将原来的地址指向新地址。</p>
<h4>4、文章导入问题</h4>
<p>如果你执行升级，自然就不用导入文章了。但是提醒一下，使用子目录安装多站点模式，第一个站点（主博客）的原来的静态页面（pages）的地址没变还是 www.domain.tld/pageslug 的形式，但是<strong>文章</strong>、<strong>分类</strong>、<strong>Tag</strong>的基础地址是 www.domain.tld/blog/，即平白多了一节出来。那么，也用前面3中提到的方法重定向吧。同时，分类、Tag还需要在 设置（Settings）——&gt;永久链接（Permalink） 里分别增加一个 category 和 tag 的基础地址，见“<a href="http://cnzhx.net/blog/articles/upgrade-to-wp30-multisite-subdirectory/">升级至WordPress 3.0多站点模式</a>”。</p>
<p>可如果你在同一站点还有另一个独立的WordPress安装在某个目录中，又希望将它合并到这个程序中以站点（子博客）的形式出现呢？</p>
<p>最好你的这另一个博客的内容不是很多，结构不是很复杂，那样的话你就可以简单的使用WordPress本身自带的导出/导入功能将该博客的文章、页面、分类、Tag、评论等等一切导入到该“网络”的新站点（子博客）中。</p>
<p>但是导入的文章其分类和Tag如果有中文字符的话，可能会有些问题。比如将 名称：新闻，slug：news 的Tag导入为名称：news，slug：新闻，那么，你这个Tag的链接就由 www.domain.tld/subblog/tag/news 变成了 www.domain.tld/subblog/tag/新闻。（<strong>这里假定你是用子目录形式启用多站点功能，并且为了保持链接不变，你使用原来子博客所在的目录 subblog 作为该网络中新站点（子博客）的别名（ slug）</strong>）碰到这样的事情，恐怕就只好挨个儿的手动修改了。</p>
<h4>5、附件导入问题</h4>
<p>几乎所有的博客都会在文章中附加图片等附件，如果你的附件保存在本地（通过WordPress编辑器上传的），那么你就需要考虑它的存储位置和链接等问题了。</p>
<p>方便的是，文章中的附件在你执行导入的时候会提示你“是否下载并导入附件”。并且它会自动更新附件的链接（因为除了主（第一个）站点外，其它站点的附件都是放在 wp-content/blogs.dir/{blog_ID}/files/ 目录下的。）</p>
<p>可是你想想，由于前面提到的地址冲突问题，你又不可能让地址为 /subblog 的站点和位于目录 subblog 中的一个老的WordPress同时工作，怎么办？建议先用另一个别名，如 subblognew 来建立新站点，待导入完成后再在控制台里将其别名（slug）更改为 subblog。</p>
<h4>6、修改引用地址URI</h4>
<p>既然架构变了，某些地址变了，就需要批量修改文章中引用本站内部文章时留下的链接，使之变成现在的链接。可以参考<a href="http://cnzhx.net/blog/articles/transfer-domain-of-a-blog/">blog域名迁移之迁移wordpress</a>或者<a href="http://cnzhx.net/blog/articles/safely-change-permalinks-of-wordpress/">安全修改WordPress网站永久链接地址形式</a>里的方法。</p>
<p>嗯，暂时就记得这么多了。这几天已经将我的站点改造完了，现在是运行在单一的<a href="http://cnzhx.net/blog/articles/wordpress-30-release-candidate/">WordPress 3.0 RC1</a> 安装上，基本上没有什么问题出现。我会陆续将心得发出来，敬请关注！</p>
<p>转载请注明：来自<a href="http://cnzhx.net/">不存在的空间</a>，作者<a href="http://cnzhx.net/about/">lonelicloud</a><br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://cnzhx.net/blog/articles/wordpress-3-0-force-enable-sub-directory-multisite/' title='强制WordPress 3.0以子目录形式安装多站点功能'>强制WordPress 3.0以子目录形式安装多站点功能</a></li>
<li><a href='http://cnzhx.net/blog/articles/upgrade-to-wp30-multisite-subdirectory/' title='升级至WordPress 3.0多站点模式'>升级至WordPress 3.0多站点模式</a></li>
<li><a href='http://cnzhx.net/blog/articles/google-xml-sitemaps-and-wordpress-multisite/' title='Google XML Sitemaps与WordPress 多站点（Multisite）'>Google XML Sitemaps与WordPress 多站点（Multisite）</a></li>
<li><a href='http://cnzhx.net/blog/articles/preload-the-cache-in-wp-super-cache/' title='预加载（Preload）WP Super Cache缓存'>预加载（Preload）WP Super Cache缓存</a></li>
<li><a href='http://cnzhx.net/blog/articles/wordpress-3-0-manually-upgrade-fast/' title='WordPress 3.0后的快速手动升级方法'>WordPress 3.0后的快速手动升级方法</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://cnzhx.net/blog/articles/update-to-wordpress-3-0-multisite-problem/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>给基于WordPress + K2 Theme的网站加速</title>
		<link>http://cnzhx.net/blog/articles/speed-up-website-built-with-wordpress-plus-k2-theme/</link>
		<comments>http://cnzhx.net/blog/articles/speed-up-website-built-with-wordpress-plus-k2-theme/#comments</comments>
		<pubDate>Wed, 19 May 2010 00:15:39 +0000</pubDate>
		<dc:creator>lonelicloud</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[主题]]></category>
		<guid isPermaLink="false">http://cnzhx.net/blog/?p=1777</guid>
		<description><![CDATA[K2主题是一款功能强大、定制容易的WordPress主题。它完美运用了AJAX 技术并提供了丰富的自定义内容，并且为各种主流 WordPress 插件预留了接口，甚至为部分插件提供了内建样式。然而由于它功能强大，并且需要下载大量的jQuery代码，就导致使用默认K2主题的网站打开速度大受影响。如果进行简单的修改就可以大大提高网站的打开速度。本文介绍了一个利用WP Minify插件使得 K2主题中的JS代码不再加载而减少页面打开时间的方法。]]></description>
			<content:encoded><![CDATA[<p><a href="http://getk2.com/">K2主题</a>是一款功能强大、定制容易的WordPress主题。它完美运用了AJAX 技术并提供了丰富的自定义内容，并且为各种主流 WordPress 插件预留了接口，甚至为部分插件提供了内建样式。然而由于它功能强大，并且需要下载大量的jQuery代码，就导致使用默认K2主题的网站打开速度大受影响。如果进行简单的修改就可以大大提高网站的打开速度。本文介绍了一个利用<a href="http://wordpress.org/extend/plugins/wp-minify/">WP Minify插件</a>使得K2主题中的JS代码不再加载而减少页面打开时间的方法。</p>
<p><span id="more-1777"></span></p>
<p style="text-align: center;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; <strong>2010.08.26 更新</strong> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>2010.08.24，K2主题更新到1.1版本更新1144，k2不再重写 jQuery 文件请求，也就意味着，你可以使用 <a href="http://wordpress.org/extend/plugins/use-google-libraries/" target="_blank"><strong>Use Google Libraries</strong></a> 插件来从Google提供的jQuery库中加载这些jQuery文件。利用Google稳定而快速的服务器来提供js文件，这样就可以加快javascript的加载。也就不需要再用下面所说的方法来禁用js的加载以提高用户访问速度了。</p>
<p>当然，如果你额外开启k2主题的“AJAX archives &amp; search”功能，就需要额外加载k2内建的js文件。该文件不能通过 Use Google Libraries 从Google加载，总而减缓网页加载速度。为了速度，建议不要启用该功能。</p>
<p style="text-align: center;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; <strong>2010.08.26 结束</strong> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>使用该主题，网站打开速度慢主要有两个原因（忽略服务器性能和网络速度影响）：一是需要服务器运行php的量比较大；二是需要加载较多的元素。我们从加载的这些元素来考虑，因为这是对打开时间影响最大的。比如它除了需要加载主题CSS样式文件之外，可能还要加载自定义的样式表，这就需要客户端发出2次下载请求，而发送请求并等待服务器响应需要的时间可能比下载时间还长。再比如它在页面的head标记里要求下载4个js文件，这就需要4次请求和等待来完成下载，并且其中一个js文件jQuery.js有70KB左右。所以，从用户点击链接到打开一部分页面都需要很长的时间，除非你使用的服务器响应非常迅速。对于我使用的国外免费空间，开头的请求与等待等等都需要将近8秒。如下图所示。</p>
<p style="text-align: center;">
<div id="attachment_1788" class="wp-caption aligncenter" style="width: 513px"><a href="http://cnzhx.net/wp-content/uploads/2010/05/site_waterfall_with_js.png"><img class="size-full wp-image-1788  " title="site_waterfall_with_js" src="http://cnzhx.net/wp-content/uploads/2010/05/site_waterfall_with_js.png" alt="" width="503" height="65" /></a><p class="wp-caption-text">图1 页面中的js代码打开时间图</p></div>
<p>我在WordPress中使用了<a href="http://wordpress.org/extend/plugins/wp-minify/">WP Minify插件</a>来对CSS和JS代码进行合并和压缩，这样可以减少请求次数。图中左侧数字表示按顺序请求和下载的元素。1是进行dns查询，2是由不带/向带/的地址http://cnzhx.net/wp/进行301跳转的时间（可见尽量减少301跳转也能提高网站的响应速度，但这不是本文讨论的内容），3是请求下载合并压缩后的CSS样式表文件，4是请求下载合并后的JS代码文件。图中中间的彩色进度条，绿色表示请求时间，蓝色表示传输（下载）时间。可见，如果没有使用WP Minify插件进行CSS和JS代码合并，需要的时间更长。当然，从图中看到的加载JS代码需要的额外时间并不多。但是如果考虑到各地网速的差异，这一点东西下载起来还是需要不少时间的。<span style="color: #990000;"><strong>如果你的页面中不需要使用这些js代码</strong></span>呢，这些时间和带宽还是替访问者省下来吧。</p>
<p>上图是从测试网站的报告中截取的。你也可以去<a href="http://www.webpagetest.org/">WebPageTest</a>网站实测一下网站的打开速度，从自动生成的报告中能看到页面各个元素打开的顺序和耗费的时间，还能得到改进建议。不过该网站是英文的，英文不大好的话就直接点击上面导航栏的<strong><em><span style="color: #000000;">New Test</span></em></strong>开始一个新测试并输入你要测试网址，其它默认，然后点击页面左下角的 <strong><em>Summit</em></strong> ，静静等待看看效果吧。报告是图表的，比较容易看懂。</p>
<p>一次偶然的机会，我发现WP Minify插件的一个bug。应该是bug吧，它有个选项让你可以将合并后的js代码放到footer部分来加载（如下图2中红圈位置处），可是我用了后发现它并没有加载，彻底的没有加载。反正是可以利用这个bug。这样打开网站页面就不需要请求下载js代码了，可以节省不少时间，如下图3。</p>
<p style="text-align: center;">
<div id="attachment_1789" class="wp-caption aligncenter" style="width: 468px"><a href="http://cnzhx.net/wp-content/uploads/2010/05/wp_minify_options.png"><img class="size-full wp-image-1789" title="wp_minify_options" src="http://cnzhx.net/wp-content/uploads/2010/05/wp_minify_options.png" alt="" width="458" height="444" /></a><p class="wp-caption-text">图2 WP Minify插件的选项页</p></div>
<div id="attachment_1790" class="wp-caption aligncenter" style="width: 515px"><a href="http://cnzhx.net/wp-content/uploads/2010/05/site_waterfall_without_js.png"><img class="size-full wp-image-1790 " title="site_waterfall_without_js" src="http://cnzhx.net/wp-content/uploads/2010/05/site_waterfall_without_js.png" alt="" width="505" height="51" /></a><p class="wp-caption-text">图3 不加载js代码时的页面元素打开时间</p></div>
<p style="text-align: left;">大家可能注意到这里用的是blog/这个地址，这是因为中间我换了地址了（详见，<a href="http://cnzhx.net/blog/articles/notice-change-blog-link/">广而告之：变更博客链接</a>），而且还进行了其它一些改变，但是跟我这里讨论的问题无关。放这个图是为了说明少掉的那个请求并等待下载合并后的js代码的过程的。</p>
<p style="text-align: left;">好了，大家可以看到，这个方法仅仅是为了更多的减少不必要的加载时间，提高访问满意度。实际上，如果注意尽量不使用301跳转，效果会更加明显。回头再专门说这个吧。大家可以把图3和下面的图4对比一下：</p>
<p style="text-align: center;">
<p><div id="attachment_1791" class="wp-caption aligncenter" style="width: 490px"><a href="http://cnzhx.net/wp-content/uploads/2010/05/site_waterfall_without_js_301.png"><img class="size-full wp-image-1791 " title="site_waterfall_without_js_301" src="http://cnzhx.net/wp-content/uploads/2010/05/site_waterfall_without_js_301.png" alt="" width="480" height="63" /></a><p class="wp-caption-text">图4 与图3对比301跳转带来的网页打开时间延迟</p></div><br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://cnzhx.net/blog/articles/safely-change-permalinks-of-wordpress/' title='安全修改WordPress网站永久链接地址形式'>安全修改WordPress网站永久链接地址形式</a></li>
<li><a href='http://cnzhx.net/blog/articles/use-gmail-smtp-as-wordpress-mail-send-server/' title='使用Gmail解决WordPress邮件问题'>使用Gmail解决WordPress邮件问题</a></li>
<li><a href='http://cnzhx.net/blog/articles/wordpress-macro-blog-plugin-live-blogging/' title='WordPress微博插件：Live Blogging'>WordPress微博插件：Live Blogging</a></li>
<li><a href='http://cnzhx.net/blog/articles/extension-6-showing-only-rows-that-match-a-filter/' title='扩展6: 只显示表格中符合筛选条件的行'>扩展6: 只显示表格中符合筛选条件的行</a></li>
<li><a href='http://cnzhx.net/blog/articles/extension-5-how-to-use-php-in-table-cells/' title='扩展5: 在表格单元中使用PHP代码'>扩展5: 在表格单元中使用PHP代码</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://cnzhx.net/blog/articles/speed-up-website-built-with-wordpress-plus-k2-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>广而告之：变更博客链接</title>
		<link>http://cnzhx.net/blog/articles/notice-change-blog-link/</link>
		<comments>http://cnzhx.net/blog/articles/notice-change-blog-link/#comments</comments>
		<pubDate>Wed, 12 May 2010 01:40:29 +0000</pubDate>
		<dc:creator>lonelicloud</dc:creator>
				<category><![CDATA[筑巢日记]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://cnzhx.net/blog/?p=1739</guid>
		<description><![CDATA[为了提高链接的可读性，遵从网络惯例，昨天夜间将博客 http://cnzhx.net/wp/ 的链接更改为 http://cnzhx.net/blog/。如果您曾经转载或者引用本博客的内容，请将链接做相应更改！给您造成的不便，我们深表歉意！谢谢！]]></description>
			<content:encoded><![CDATA[<p>为了提高链接的可读性，遵从网络惯例，昨天夜间将博客 http://cnzhx.net/wp/ 的链接更改为 http://cnzhx.net/blog/。如果您曾经转载或者引用本博客的内容，请将链接做相应更改！给您造成的不便，我们深表歉意！谢谢！</p>
<p><span id="more-1739"></span>当然，已经在服务器上的 .htaccess里加入了301跳转：</p>
<blockquote><p>Redirect 301 /wp /blog</p></blockquote>
<p>但是我的测试表明，<span style="color: #990000;"><strong>多一次301跳转，访问时间就要增加近1.5s</strong></span>（针对我使用的服务器而言）。所以，虽然使用原来的链接也能访问到正确的内容，为了节省时间，还是请手动将收藏夹中的地址改了，或者打开后重新收藏。谢谢！</p>
<p>之前测试过使用301跳转来无缝变更WordPress安装文件夹，可是因为疏忽，没有将 .htaccess文件的访问权限设定正确（至少要是644），一直没能成功。今天终于如愿以偿了。<br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://cnzhx.net/blog/articles/safely-change-permalinks-of-wordpress/' title='安全修改WordPress网站永久链接地址形式'>安全修改WordPress网站永久链接地址形式</a></li>
<li><a href='http://cnzhx.net/blog/articles/update-to-wordpress-3-0-multisite-problem/' title='升级到WordPress 3.0多站点模式问题探索'>升级到WordPress 3.0多站点模式问题探索</a></li>
<li><a href='http://cnzhx.net/blog/articles/use-htaccess-301-redirection-to-make-unique-entry-url-of-website-for-sef/' title='使用.htaccess的301跳转确定唯一网站入口地址'>使用.htaccess的301跳转确定唯一网站入口地址</a></li>
<li><a href='http://cnzhx.net/blog/articles/wordpress-cache-plugins-contrast/' title='WordPress缓存插件性能对比'>WordPress缓存插件性能对比</a></li>
<li><a href='http://cnzhx.net/blog/articles/preload-the-cache-in-wp-super-cache/' title='预加载（Preload）WP Super Cache缓存'>预加载（Preload）WP Super Cache缓存</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://cnzhx.net/blog/articles/notice-change-blog-link/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>使用.htaccess的301跳转确定唯一网站入口地址</title>
		<link>http://cnzhx.net/blog/articles/use-htaccess-301-redirection-to-make-unique-entry-url-of-website-for-sef/</link>
		<comments>http://cnzhx.net/blog/articles/use-htaccess-301-redirection-to-make-unique-entry-url-of-website-for-sef/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 13:43:35 +0000</pubDate>
		<dc:creator>lonelicloud</dc:creator>
				<category><![CDATA[筑巢日记]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[重定向]]></category>
		<guid isPermaLink="false">http://cnzhx.net/blog/?p=1028</guid>
		<description><![CDATA[前几天读到一篇文章说网站应该只有唯一的入口地址，这样对搜索引擎比较友好（SEF）。于是遍寻.htaccess的写法。可惜网上很多文章都没有多少实际意义，基本都是一个内容变变脸又拿出来，有的甚至连脸都不变。不过还是找到一点儿线索，至少让我的这个.htaccess文件满足了我的要求。]]></description>
			<content:encoded><![CDATA[<p>前几天读到一篇文章说网站应该只有唯一的入口地址，这样对搜索引擎比较友好（SEF）。于是遍寻.htaccess的写法。可惜网上很多文章都没有多少实际意义，基本都是一个内容变变脸又拿出来，有的甚至连脸都不变。不过还是找到一点儿线索，至少让我的这个.htaccess文件满足了我的要求。</p>
<p><span id="more-1028"></span>内容如下，加入了一些注释：</p>
<blockquote><p><code><span style="color: #888888;">#BEGIN ZZ<br />
#打开重写引擎</span><br />
RewriteEngine On<br />
<span style="color: #888888;">#设定重写url的起始位置为 /</span><br />
RewriteBase /<br />
<span style="color: #888888;">#设定重写条件为：当请求地址不等于cnzhx.net时，如我的另一个域名cnzhx.co.cc</span><br />
RewriteCond %{HTTP_HOST} !^cnzhx.net$ [NC]<br />
<span style="color: #888888;">#重写规则：永久重定向到http://cnzhx.net</span><br />
RewriteRule ^(.*)$ http://cnzhx.net/$1 [L,R=301]<br />
<span style="color: #888888;">#重写条件：如果网站主入口后面跟着index.html（可以根据情况将下两行的html改为php）</span><br />
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/<br />
<span style="color: #888888;">#重写规则：永久重定向到不带index.html的地址http://cnzhx.net/</span><br />
RewriteRule ^index\.html$ http://cnzhx.net/ [R=301,L]<br />
<span style="color: #888888;">#END ZZ</span></code></p></blockquote>
<p>可惜的是，还没有搞懂不在网站根目录的时候，比如 /bbs 下的时候怎么去掉网址上的index，如http://cnzhx.net/bbs/index.php 重定向为http://cnzhx.net/bbs。</p>
<p>也许正是因为这个，才把我那个在国内不能访问的停放在xtreemhost上的域名唤醒了，结果导致1天后我的网站地址就被ban掉了。不过，也许只是时间上的巧合？<br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://cnzhx.net/blog/articles/notice-change-blog-link/' title='广而告之：变更博客链接'>广而告之：变更博客链接</a></li>
<li><a href='http://cnzhx.net/blog/articles/safely-change-permalinks-of-wordpress/' title='安全修改WordPress网站永久链接地址形式'>安全修改WordPress网站永久链接地址形式</a></li>
<li><a href='http://cnzhx.net/blog/articles/update-to-wordpress-3-0-multisite-problem/' title='升级到WordPress 3.0多站点模式问题探索'>升级到WordPress 3.0多站点模式问题探索</a></li>
<li><a href='http://cnzhx.net/blog/articles/wordpress-cache-plugins-contrast/' title='WordPress缓存插件性能对比'>WordPress缓存插件性能对比</a></li>
<li><a href='http://cnzhx.net/blog/articles/web-load-time-affect-google-rank/' title='[转]网页加载速度影响Google搜索结果排名'>[转]网页加载速度影响Google搜索结果排名</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://cnzhx.net/blog/articles/use-htaccess-301-redirection-to-make-unique-entry-url-of-website-for-sef/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
