<?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; 重定向</title>
	<atom:link href="http://www.baizoo.cn/tag/%e9%87%8d%e5%ae%9a%e5%90%91/feed" rel="self" type="application/rss+xml" />
	<link>http://www.baizoo.cn</link>
	<description>——长风破浪会有时</description>
	<lastBuildDate>Mon, 30 Jan 2012 08:09:57 +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>.htaccess规则简单实例</title>
		<link>http://www.baizoo.cn/archives/1031.html</link>
		<comments>http://www.baizoo.cn/archives/1031.html#comments</comments>
		<pubDate>Mon, 31 May 2010 16:25:49 +0000</pubDate>
		<dc:creator>baizoo</dc:creator>
				<category><![CDATA[技术爱好]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[映射]]></category>
		<category><![CDATA[重定向]]></category>

		<guid isPermaLink="false">http://www.baizoo.cn/?p=1031</guid>
		<description><![CDATA[很久以前我研究过apache的rewrite规则（见：PJblog转Wordpress文章地址重定向），其实这方面的东西还有很多都没搞懂，今天想到又来学习一下，并写了个例子。 RewriteEngine on RewriteRule test/([a-z0-9\-]+\.html)$ test/test\.php\?id=$1 #实现伪静态将/test/1.html 映射到/test/test.php?id=1 RewriteCond %{QUERY_STRING} ^id=([a-z0-9\-]+)$ RewriteRule ^(.*)$ /test/%1\.html? [R=301,L] #将test/test.php?id=1 用301重定向到 /test/1.html 实现的效果： 访问/test/1.html时，web服务器会把实际请求转发给/test/test.php?id=1 当访问/test/test.php?id=1时，规则又把该地址用301重定向到/test/1.html 几点摘要： RewriteRule反向引用$N (0]]></description>
			<content:encoded><![CDATA[<p>很久以前我研究过apache的rewrite规则（见：<a href="http://www.baizoo.cn/archives/390.html">PJblog转Wordpress文章地址重定向</a>），其实这方面的东西还有很多都没搞懂，今天想到又来学习一下，并写了个例子。</p>
<p><coolcode linenum="off"><br />
RewriteEngine on<br />
RewriteRule test/([a-z0-9\-]+\.html)$ test/test\.php\?id=$1<br />
#实现伪静态将/test/1.html 映射到/test/test.php?id=1</p>
<p>RewriteCond %{QUERY_STRING} ^id=([a-z0-9\-]+)$<br />
RewriteRule ^(.*)$ /test/%1\.html? [R=301,L]<br />
#将test/test.php?id=1 用301重定向到 /test/1.html<br />
</coolcode></p>
<p>实现的效果：<br />
访问/test/1.html时，web服务器会把实际请求转发给/test/test.php?id=1<br />
当访问/test/test.php?id=1时，规则又把该地址用301重定向到/test/1.html</p>
<p><span id="more-1031"></span>几点摘要：<br />
RewriteRule反向引用$N<br />
(0 <= N <= 9)引用当前(带有若干<strong>RewriteRule</strong>指令的)RewriteCond中的与Pattern匹配的分组成分(圆括号!)。 所以上面规则中的$1表示的第一个RewriteRule圆括号的内容。(如有多个圆括号正则，则用$2 $3&#8230;.)</p>
<p>RewriteCond反向引用%N<br />
(1 <= N <= 9)引用当前若干<strong>RewriteCond</strong>条件中最后符合的条件中的分组成分(圆括号!)。 所以规则中%1引用的是rewritecond中 id后门圆括号内的成分。</p>
<p>RewriteRule 规则主要是写在这里面<br />
RewriteCond 定义重写发生的条件 如例子中的RewriteCond 表示只有出现id=([a-z0-9\-]+)$ 才使用下面的规则。(这里的$是正则里的结尾)</p>
<p>有篇<a href="http://apps.hi.baidu.com/share/detail/5296929">Apache的rewrite规则详细介绍</a>，摘过来备份</p>
]]></content:encoded>
			<wfw:commentRss>http://www.baizoo.cn/archives/1031.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PJblog转WordPress文章地址重定向</title>
		<link>http://www.baizoo.cn/archives/390.html</link>
		<comments>http://www.baizoo.cn/archives/390.html#comments</comments>
		<pubDate>Sat, 21 Feb 2009 17:26:14 +0000</pubDate>
		<dc:creator>baizoo</dc:creator>
				<category><![CDATA[技术爱好]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[重定向]]></category>

		<guid isPermaLink="false">http://www.baizoo.cn/?p=390</guid>
		<description><![CDATA[动态pjblog的文章是以/article.asp?id=num结尾的，转成Wordpress之后怎么样让这个地址跳转到新的可以访问到的页面呢？如/archives/num.html 因为我这个主机是apache服务器拥有mod_rewrite组件支持，所以我们可以使用mod_rewrite进行重定向。 方法：在Wordpress根目录的.htaccess文件中加入下面语句 RewriteCond %{QUERY_STRING} ^id=([0-9]+)$ RewriteRule ^(.*)$ archives/%1.html? [R=301,L] 这样就可以实现重定向了。测试之后发觉，如果在wp后台改过固定链接之后.htaccess将会被重写，这样你就需要重新修改。 下面测试一下访问这个页面的效果http://www.baizoo.cn/article.asp?id=18 mod_rewrite内容相当丰富，这么几句话就花了我很长时间去参透，其中不仅涉及Rewrite指令，还涉及正则表达式的知识。 下面有几条常见正则表达式的格式，转来参考。 文本 . 任意一个单字符 [chars] 字符类: &#8220;chars&#8221;中的任意一个字符 [^chars] 字符类: 不在&#8221;chars&#8221;中的字符 text1&#124;text2 选择: text1 或 text2 量词 ? 前面的字符出现 0 或 1 次 * 前面的字符出现 0 或 N 次(N > 0) + 前面的字符出现 1 或 N 次(N > 1) 分组 (text) text 组 [...]]]></description>
			<content:encoded><![CDATA[<p>动态pjblog的文章是以/article.asp?id=num结尾的，转成Wordpress之后怎么样让这个地址跳转到新的可以访问到的页面呢？如/archives/num.html</p>
<p>因为我这个主机是apache服务器拥有mod_rewrite组件支持，所以我们可以使用mod_rewrite进行重定向。</p>
<p>方法：在Wordpress根目录的.htaccess文件中加入下面语句<br />
<coolcode linenum="off" lang="perl"><br />
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$<br />
RewriteRule ^(.*)$ archives/%1.html? [R=301,L]<br />
</coolcode></p>
<p>这样就可以实现重定向了。测试之后发觉，如果在wp后台改过固定链接之后.htaccess将会被重写，这样你就需要重新修改。</p>
<p>下面测试一下访问这个页面的效果<a href="http://www.baizoo.cn/article.asp?id=18">http://www.baizoo.cn/article.asp?id=18</a></p>
<p>mod_rewrite内容相当丰富，这么几句话就花了我很长时间去参透，其中不仅涉及<a title="mod_rewrite" href="http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_rewrite.html" target="_blank">Rewrite指令</a>，还涉及正则表达式的知识。</p>
<p>下面有几条常见正则表达式的格式，转来参考。<span id="more-390"></span></p>
<blockquote><p>文本<br />
  .           任意一个单字符<br />
  [chars]     字符类: &#8220;chars&#8221;中的任意一个字符<br />
  [^chars]    字符类: 不在&#8221;chars&#8221;中的字符<br />
  text1|text2 选择: text1 或 text2</p>
<p>量词<br />
  ?           前面的字符出现 0 或 1 次<br />
  *           前面的字符出现 0 或 N 次(N > 0)<br />
  +           前面的字符出现 1 或 N 次(N > 1)</p>
<p>分组<br />
  (text)      text 组<br />
              (常用于设置一个选择的边界，或用于生成后引用：<br />
               在RewriteRule中可以用 $N 引用第N个分组)</p>
<p>锚<br />
  ^           锚定到行首<br />
  $           锚定到行尾</p>
<p>转义<br />
  \c          对给定的字符c进行转义<br />
              (比如对&#8221;.[]()&#8221;进行转义，等等)</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.baizoo.cn/archives/390.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

