<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[Php Url规划-单入口程序伪静态实现方法]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Thu, 18 Mar 2010 09:16:35 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	伪静态已经不是一个新鲜的名词了，尤其是在现今SEO的炒作中。如何实现伪静态这是每个程序员都关心的问题，除非您不搞SEO。大多的伪静态都是以Htaccess（Apache mod_rewrite）来实现的，但是一个规划不太好的网站要用Htaccess实现，需要写一大堆的代码，而还有某种原因我们不得不放弃Htaccess，或是由于服务器不支持，或是个人偏好等等。<br/><br/>对于单入口（访问网站必需首先通过某一文件，一般都是index.php来实现其它功能的项目）程序来说：<br/><br/>常见的Url大都为：http://www.phplamp.org/index.php?controller=posts&amp;action=index<br/><br/>说实话这样的URL很难看，最重要的是搜索引擎不认它为正常的URL，这很可怕。如何实现一个好看的且与搜索引擎能攀上亲的URL呢。<br/><br/>看这个URL：http://www.phplamp.org/index.php/posts/index/<br/><br/>很新奇的URL创意，这也是我在使用CakePHP框架的过程中体验出来的，此URL相对于彼URL来说：易记，美观，最主要的是搜索引擎虽不认它为老爸，起码不会把它划为黑名单。<br/><br/>解释一下上面的URL，&quot;posts&quot;：一般称其为Controller（控制器），由它来决定加载哪个处理文件；&quot;index&quot;：一般称其为Action（操作），由它来决定要进行什么操作。所以/posts/index/顾名思义就是posts的主页了。如果后面需要传递参数可以直接加在Action后面。<br/><br/>如下面这个URL：http://www.phplamp.org/index.php/posts/category/1/。列出posts的分类ID为1下的所有内容。<br/><br/>以下是随手写的一个函数来处理这种情况，写的比较匆忙，没进行太多的测试，如发现问题请与我联系。<br/><br/><div class="code"><br/><br/>&nbsp;&nbsp; 1. &lt;?php&nbsp;&nbsp; <br/>&nbsp;&nbsp; 2. function uri() &#123;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 3.&nbsp;&nbsp;&nbsp;&nbsp; // 获取请求的URI&nbsp;&nbsp; <br/>&nbsp;&nbsp; 4.&nbsp;&nbsp;&nbsp;&nbsp; foreach (array(&quot;REQUEST_URI&quot;, &quot;HTTP_X_REWRITE_URL&quot;, &quot;argv&quot;) as $var) &#123;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($uri = $_SERVER&#91;$var&#93;) &#123;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($var == &quot;argv&quot;) &#123;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 7.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $uri = $uri&#91;0&#93;;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 8.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 9.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;&nbsp;&nbsp; <br/>&nbsp;&nbsp;10.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp; <br/>&nbsp;&nbsp;11.&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp; <br/>&nbsp;&nbsp;12.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;13.&nbsp;&nbsp;&nbsp;&nbsp; // 去除//情况&nbsp;&nbsp; <br/>&nbsp;&nbsp;14.&nbsp;&nbsp;&nbsp;&nbsp; $uri = str_replace(&quot;//&quot;, &quot;/&quot;, $uri);&nbsp;&nbsp; <br/>&nbsp;&nbsp;15.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;16.&nbsp;&nbsp;&nbsp;&nbsp; // 去掉index.php&nbsp;&nbsp; <br/>&nbsp;&nbsp;17.&nbsp;&nbsp;&nbsp;&nbsp; if (strpos($uri, &quot;index.php&quot;) !== false) &#123;&nbsp;&nbsp; <br/>&nbsp;&nbsp;18.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $uri = explode(&quot;index.php&quot;, $uri, 2);&nbsp;&nbsp; <br/>&nbsp;&nbsp;19.&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp; <br/>&nbsp;&nbsp;20.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;21.&nbsp;&nbsp;&nbsp;&nbsp; // 如果没有请求的字符串返回&nbsp;&nbsp; <br/>&nbsp;&nbsp;22.&nbsp;&nbsp;&nbsp;&nbsp; if (!isset($uri&#91;1&#93;)) &#123;&nbsp;&nbsp; <br/>&nbsp;&nbsp;23.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return array(&quot;controller&quot; =&gt; &#039;&#039;, &quot;action&quot; =&gt; &#039;&#039;);&nbsp;&nbsp; <br/>&nbsp;&nbsp;24.&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp; <br/>&nbsp;&nbsp;25.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;26.&nbsp;&nbsp;&nbsp;&nbsp; // 分解&nbsp;&nbsp; <br/>&nbsp;&nbsp;27.&nbsp;&nbsp;&nbsp;&nbsp; $uriBak = explode(&quot;/&quot;, $uri&#91;1&#93;);&nbsp;&nbsp; <br/>&nbsp;&nbsp;28.&nbsp;&nbsp;&nbsp;&nbsp; unset($uri);&nbsp;&nbsp; <br/>&nbsp;&nbsp;29.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;30.&nbsp;&nbsp;&nbsp;&nbsp; // 去除空项&nbsp;&nbsp; <br/>&nbsp;&nbsp;31.&nbsp;&nbsp;&nbsp;&nbsp; foreach ($uriBak as $val) &#123;&nbsp;&nbsp; <br/>&nbsp;&nbsp;32.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($val) &#123;&nbsp;&nbsp; <br/>&nbsp;&nbsp;33.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $uri&#91;&#93; = $val;&nbsp;&nbsp; <br/>&nbsp;&nbsp;34.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp; <br/>&nbsp;&nbsp;35.&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp; <br/>&nbsp;&nbsp;36.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;37.&nbsp;&nbsp;&nbsp;&nbsp; list($controller, $action) = $uri;&nbsp;&nbsp; <br/>&nbsp;&nbsp;38.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;39.&nbsp;&nbsp;&nbsp;&nbsp; $params = array();&nbsp;&nbsp; <br/>&nbsp;&nbsp;40.&nbsp;&nbsp;&nbsp;&nbsp; if (count($uri) &gt; 2) &#123;&nbsp;&nbsp; <br/>&nbsp;&nbsp;41.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array_shift($uri);&nbsp;&nbsp; <br/>&nbsp;&nbsp;42.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array_shift($uri);&nbsp;&nbsp; <br/>&nbsp;&nbsp;43.&nbsp;&nbsp;&nbsp;&nbsp; &#125;&nbsp;&nbsp; <br/>&nbsp;&nbsp;44.&nbsp;&nbsp;&nbsp;&nbsp; $params = $uri;&nbsp;&nbsp; <br/>&nbsp;&nbsp;45.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;46.&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp;<br/>&nbsp;&nbsp;47.&nbsp;&nbsp;&nbsp;&nbsp; array(&nbsp;&nbsp; <br/>&nbsp;&nbsp;48.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;controller&quot; =&gt; $controller,&nbsp;&nbsp; <br/>&nbsp;&nbsp;49.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;action&quot; =&gt; $action,&nbsp;&nbsp; <br/>&nbsp;&nbsp;50.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;params&quot; =&gt; $params,&nbsp;&nbsp; <br/>&nbsp;&nbsp;51.&nbsp;&nbsp;&nbsp;&nbsp; );&nbsp;&nbsp; <br/>&nbsp;&nbsp;52. &#125;&nbsp;&nbsp; <br/>&nbsp;&nbsp;53.&nbsp;&nbsp; <br/>&nbsp;&nbsp;54. print_r(uri());&nbsp;&nbsp; <br/>&nbsp;&nbsp;55. ?&gt;&nbsp;&nbsp;<br/><br/><br/></div><br/><br/>来源：http://www.phplamp.org/2009/04/php-url-index-php-htaccess/
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] Php Url规划-单入口程序伪静态实现方法]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>