<?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; URL Rewrite</title>
	<atom:link href="http://littlepig.cn/tag/url-rewrite/feed/" rel="self" type="application/rss+xml" />
	<link>http://littlepig.cn</link>
	<description>记录、品味、分享</description>
	<lastBuildDate>Thu, 10 Jun 2010 12:37:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>给 WordPress 添加固定链接</title>
		<link>http://littlepig.cn/others/site/add-urlrewrite-for-wordpress/</link>
		<comments>http://littlepig.cn/others/site/add-urlrewrite-for-wordpress/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 14:19:04 +0000</pubDate>
		<dc:creator>zhz</dc:creator>
				<category><![CDATA[建站笔记]]></category>
		<category><![CDATA[URL Rewrite]]></category>

		<guid isPermaLink="false">http://littlepig.cn/others/site/%e7%bb%99-wordpress-%e6%b7%bb%e5%8a%a0%e5%9b%ba%e5%ae%9a%e9%93%be%e6%8e%a5/</guid>
		<description><![CDATA[　　所谓的固定链接其实就是修改 WordPress 目录、页面或者帖子的超级链接也即 URL 的形式，这里的固定既可以理解为动词也可以理解为形容词，WP 默认的链接形势类似于动态语言所产生的那种链接形式，比如 http://littlepig.cn/?postid=5 ，对应的页面是id为5的页面，这种链接的缺点就是链接本身不带有任何信息，一眼看去根本就不知道里面内容是什么，据说搜索引擎也对这种链接爱理不理的，自然而然带来的浏览量、流量就少，所以我们得想点办法。

　　Apache 支持 URL Rewrite 功能， 就是将某种形式的链接转移到另外一个链接上，利用这个功能，我们可以将 Apache 接受到的 http://littlepig.cn/somecat/somepost.html  这种形式的链接转到 http://littlepig.cn/?postid=5  的页面上，只需要在站点的 .htaccess 里面添加规则即可，但是显然的，我们不可能为所有的页面都一一书写规则，因此我们可以使用泛匹配 (wide cast) 将某些固定形式的请求转移到一个单独的 php 页面上，由 php 的代码分析并确定链接该指向哪个真正的页面，然后再行加载。这个过程有点类似于域名的泛解析。很幸运的，WordPress 就完美的支持 URL Rewrite ，index.php 就可以看作是一个 URL 解析器。]]></description>
			<content:encoded><![CDATA[<p>　　这里我只能以我的认为来描述整个过程，虽然对这些名词也是略有听说、不知其味。</p>
<p>　　所谓的固定链接其实就是修改 WordPress 目录、页面或者帖子的超级链接也即 URL 的形式，这里的固定既可以理解为动词也可以理解为形容词，WP 默认的链接形势类似于动态语言所产生的那种链接形式，比如 http://littlepig.cn/?postid=5 ，对应的页面是id为5的页面，这种链接的缺点就是链接本身不带有任何信息，一眼看去根本就不知道里面内容是什么，据说搜索引擎也对这种链接爱理不理的，自然而然带来的浏览量、流量就少，所以我们得想点办法。</p>
<p>　　Apache 支持 <a href="http://littlepig.cn/tag/url-rewrite/" class="st_tag internal_tag" rel="tag" title="标签 URL Rewrite 下的日志">URL Rewrite</a> 功能， 就是将某种形式的链接转移到另外一个链接上，利用这个功能，我们可以将 Apache 接受到的 http://littlepig.cn/somecat/somepost.html  这种形式的链接转到 http://littlepig.cn/?postid=5  的页面上，只需要在站点的 .htaccess 里面添加规则即可，但是显然的，我们不可能为所有的页面都一一书写规则，因此我们可以使用泛匹配 (wide cast) 将某些固定形式的请求转移到一个单独的 php 页面上，由 php 的代码分析并确定链接该指向哪个真正的页面，然后再行加载。这个过程有点类似于域名的泛解析。很幸运的，WordPress 就完美的支持 <a href="http://littlepig.cn/tag/url-rewrite/" class="st_tag internal_tag" rel="tag" title="标签 URL Rewrite 下的日志">URL Rewrite</a> ，index.php 就可以看作是一个 URL 解析器。</p>
<p>　　有了上面的基础，实现链接的自定义就比较方便了</p>
<p>　　１、在后台的 设置 &#8211; 固定链接 选项里，你可以选择系统提供的几种固定样式的链接，但都不怎么人性化，当然我们也可以自己定义，自定义的字段(或者叫做标签)可以使用的有如下几种</p>
<p>　　　 %year% <br />
　　　 年，四位数，如：2004</p>
<p>　　　%monthnum%<br />
　　　月，如： 05</p>
<p>　　　%day%<br />
　　　日，如：28</p>
<p>　　　%hour%<br />
　　　时，更精确的时间，如：15</p>
<p>　　　%minute%<br />
　　　分，如：43</p>
<p>　　　%second%<br />
　　　秒，如：33</p>
<p>　　　%postname%<br />
　　　文章名，这是WordPress 固定链接比较常用的标签。如一篇文章的标题为“This Is A Great Post”，则使用这个标签的固定链接就是“this-is-a-great-post”。对于中文，WordPress 会进行编码而后输出编码结果。</p>
<p>　　　%post_id%<br />
　　　文章的唯一标识，如：423</p>
<p>　　　%category%<br />
　　　分类</p>
<p>　　　%author%<br />
　　　文章作者名</p>
<p>　　在自定义固定链接的时候，域名是不用输入的，直接使用　/%category%/%postname%/ 这种形式即可，当然，你也可以在后边加上 .htm 或者 .html ，这样看起来更像是静态页面，但据说不加扩展名最后使用/结尾那种形式更受搜索引擎青睐，其中 %postnam% 有的帖子里叫做 日志缩略名 ，貌似在 WP 2.7 里已经取消了这个选项，我在新建日志的时候反正没有找到任何输入类似信息的地方，只是在快速编辑日志的时候会出现一个叫做别名的选项，应该就是所说的日志缩略名，帖子在正常修改的时候在标题的下面会显示有 修改固定链接 的选项。</p>
<p>　　WordPress 设置好了，接下来的工作就是配置 Apache 来实现 <a href="http://littlepig.cn/tag/url-rewrite/" class="st_tag internal_tag" rel="tag" title="标签 URL Rewrite 下的日志">URL Rewrite</a> ，据说大部分网络服务提供商都开启了 mod_rewrite ，站点管理员只需要在网站根目录的 .htaccess 文件里配置规则即可，显然，写规则也得懂得很多知识，我还是决定使用拿来主义，搜啊搜，找到了一段</p>
<p>&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]<br />
&lt;/IfModule&gt;</p>
<p>　　将上面代码放入你站点根目录的 .htaccess 里即可。</p>
<p>　　现在你的 WordPress 就应该可以工作了，但有些地方要注意，一是你需要修改你以前所有文章的 别名，尽量去掉中文，因为中文会编码成 %2d%e2 这种形式，显然，这样的链接没有任何意义，甚至还不如 /?id=5 那种呢，这个工作量比较大，而且，要求你还得懂点英文，咱总不能拿 look-what-look 这种链接来秀吧？固定链接这个操作最好在开博的时候就进行，以后省事多了；二是我发现 页面(page) 的标题如果有中文，不仅编码后的链接不美观，而且根本就不能访问，所以这些页面的 固定链接 是必须要改成英文的。</p>
<p>　　目前就发现这么多问题，我的貌似目前工作正常。</p>
]]></content:encoded>
			<wfw:commentRss>http://littlepig.cn/others/site/add-urlrewrite-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
