<?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>vifix.cn &#187; SEO</title>
	<atom:link href="http://vifix.cn/blog/tag/seo/feed" rel="self" type="application/rss+xml" />
	<link>http://vifix.cn/blog</link>
	<description>compile the dream, compile tomorrow</description>
	<lastBuildDate>Sat, 04 Feb 2012 03:15:56 +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做了伪静态化</title>
		<link>http://vifix.cn/blog/%e7%bb%99wordpress%e5%81%9a%e4%ba%86%e4%bc%aa%e9%9d%99%e6%80%81%e5%8c%96.html</link>
		<comments>http://vifix.cn/blog/%e7%bb%99wordpress%e5%81%9a%e4%ba%86%e4%bc%aa%e9%9d%99%e6%80%81%e5%8c%96.html#comments</comments>
		<pubDate>Sat, 06 Dec 2008 05:30:05 +0000</pubDate>
		<dc:creator>Mac</dc:creator>
				<category><![CDATA[Website]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://vifix.cn/blog/?p=315</guid>
		<description><![CDATA[嘛，研究了一下wordpress的持久链接和nginx的URL Rewrite，将自己的blog进行了伪静态化，链接已经全部转变为http://vifix.cn/blog/%postname%.html的形式 转帖一篇文章： 原文地址：http://shiningray.cn/nginx-de-wordpress-pei-zhi.html WordPress是一个非常流行的Blog系统，它可以利用Apache的 mod_rewrite来实现URL的静态化。安装好的WordPress在配置了持久链接之后，会在网站的根目录下（如果可写）生成一 个.htaccess文件，这个文件可以指示Apache如何进行URL重写（如果服务器配置为允许使用htaccess的指令的话），它的内容如下： # BEGIN WordPress &#60;IfModule mod_rewrite.c&#62; RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] &#60;/IfModule&#62; # END WordPress 这个文件的意思就是，如果当请求的文件不存在，那么把请求内部重定向到/index.php。WordPress会自己分析请求的URL，来判断显示哪个页面。 在上次配置了Nginx+PHP之后，由于Nginx不支持Apache的.htaccess文件，要实现持久连接静态化，我们必须手工配置Nginx的文件。首先找到Nginx的配置文件，默认编译后的配置文件在/usr/local/nginx/conf/nginx.conf；Ubuntu通过包安装的配置文件位于/etc/nginx/nginx.conf，也可以编辑vhost的配置文件，放在了/etc/nginx/sites-available下。 以下是基本的配置（Ubuntu下的范例）： location / { index index.html index.php; if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if [...]]]></description>
			<content:encoded><![CDATA[<p>嘛，研究了一下wordpress的持久链接和nginx的URL Rewrite，将自己的blog进行了伪静态化，链接已经全部转变为http://vifix.cn/blog/%postname%.html的形式</p>
<p>转帖一篇文章：</p>
<p>原文地址：<a href="http://shiningray.cn/nginx-de-wordpress-pei-zhi.html" onclick="pageTracker._trackPageview('/outgoing/shiningray.cn/nginx-de-wordpress-pei-zhi.html?referer=');">http://shiningray.cn/nginx-de-wordpress-pei-zhi.html</a></p>
<p><span id="more-315"></span></p>
<div class="entry-content">
<p><a href="http://www.wordpress.org/" onclick="pageTracker._trackPageview('/outgoing/www.wordpress.org/?referer=');">WordPress</a>是一个非常流行的Blog系统，它可以利用<a href="http://httpd.apache.org/" onclick="pageTracker._trackPageview('/outgoing/httpd.apache.org/?referer=');">Apache</a>的 mod_rewrite来实现URL的静态化。安装好的WordPress在配置了持久链接之后，会在网站的根目录下（如果可写）生成一 个.htaccess文件，这个文件可以指示Apache如何进行URL重写（如果服务器配置为允许使用htaccess的指令的话），它的内容如下：</p>
<blockquote>
<pre># BEGIN WordPress
&lt;IfModule mod_rewrite.c&gt;
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
&lt;/IfModule&gt;
# END WordPress</pre>
</blockquote>
<p>这个文件的意思就是，如果当请求的文件不存在，那么把请求内部重定向到/index.php。WordPress会自己分析请求的URL，来判断显示哪个页面。</p>
<p>在上次<a href="http://shiningray.cn/2007/12/15/linux-shang-pei-zhi-nginx-php5-fastcgi/" onclick="pageTracker._trackPageview('/outgoing/shiningray.cn/2007/12/15/linux-shang-pei-zhi-nginx-php5-fastcgi/?referer=');">配置了Nginx+PHP</a>之后，由于<a href="http://nginx.net/" onclick="pageTracker._trackPageview('/outgoing/nginx.net/?referer=');">Nginx</a>不支持Apache的.htaccess文件，要实现持久连接静态化，我们必须手工配置Nginx的文件。首先找到Nginx的配置文件，默认编译后的配置文件在<code>/usr/local/nginx/conf/nginx.conf</code>；Ubuntu通过包安装的配置文件位于<code>/etc/nginx/nginx.conf</code>，也可以编辑vhost的配置文件，放在了<code>/etc/nginx/sites-available</code>下。</p>
<p>以下是基本的配置（Ubuntu下的范例）：</p>
<pre>   location / {
        index index.html index.php;
        if (-f $request_filename/index.html){
            rewrite (.*) $1/index.html break;
        }
        if (-f $request_filename/index.php){
            rewrite (.*) $1/index.php;
        }
        if (!-f $request_filename){
            rewrite (.*) /index.php;
        }
    }
    location ~ .*\.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
    }</pre>
<p>还可以有很多种不同配置方式，例如不改写所有包含wp-的url等。此配置考虑了目录下的索引文件index.html和index.php。-f 指令表示测试文件是否存在（不考虑文件和目录的区别），!-f则表示不存在。注意在重写url到index.html后面有个break，而重写到 index.php后没有break。因为html文件不需要任何额外工作可以直接发送到客户端，所以重写规则在这里终止，下面就直接让nginx发送文 件。而.php文件需要进一步发送到fastcgi进程来运行，Nginx会继续判断该文件符合第二个部分location ~ .*\.php$的规则，并进行FastCGI的转发。</p>
<p>大家可以将以上内容保存为wordpress.conf，然后在自己的vhost配置，即server节中应用该配置文件，例如（以下为Ubuntu进行的配置）：</p>
<pre>server {
        listen   80;
        server_name  shiningray.cn *.shiningray.cn;

        root /var/www/shiningray.cn;

        <strong>include /etc/nginx/wordpress.conf;</strong>
}</pre>
<p>接下来让Nginx重新载入配置文件，便可使用WordPress的持久链接了。</p></div>
]]></content:encoded>
			<wfw:commentRss>http://vifix.cn/blog/%e7%bb%99wordpress%e5%81%9a%e4%ba%86%e4%bc%aa%e9%9d%99%e6%80%81%e5%8c%96.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

