<?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>PHPLAMP网站建设 &#187; htaccess</title>
	<atom:link href="http://www.phplamp.org/tag/htaccess/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phplamp.org</link>
	<description>PHPLAMP提供保定网站建设，网站推广优化服务。</description>
	<lastBuildDate>Tue, 31 Aug 2010 09:56:43 +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>.Htaccess域名Url转发实现方法 Mode_Rewrite域名转发</title>
		<link>http://www.phplamp.org/2009/11/htaccess-url-domain-forward/</link>
		<comments>http://www.phplamp.org/2009/11/htaccess-url-domain-forward/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 01:35:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[站长笔记]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[Mod_rewrite]]></category>
		<category><![CDATA[域名]]></category>
		<category><![CDATA[转发]]></category>

		<guid isPermaLink="false">http://www.phplamp.org/?p=328</guid>
		<description><![CDATA[Url转发的实现很简单，只要域名商支持Url转发就行了，但是也有不支持转发的域名商，譬如：Godaddy。这时就需要用其它的办法实现。
这里介绍一下用Mode Rewrite实现域名转发，这里以域名www.dy03.cn来做例子。
&#60;IfModule mod_rewrite.c&#62;
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^dy03.cn [NC]
RewriteRule ^(.*)$ http://www.dy03.cn/$1 [L,R=301]
&#60;/IfModule&#62;
其实我对mod_rewrite的规则写法也不是很了解，只是了解一点点，简单说一下这个规则的意思，不知道对不对。
RewriteCond指的是应用转发规则的条件；RewriteRule则是转发的方法。
]]></description>
			<content:encoded><![CDATA[<p>Url转发的实现很简单，只要域名商支持Url转发就行了，但是也有不支持转发的域名商，譬如：Godaddy。这时就需要用其它的办法实现。</p>
<p>这里介绍一下用Mode Rewrite实现域名转发，这里以域名<a title="免费在优酷网看电影" href="http://www.dy03.cn">www.dy03.cn</a>来做例子。</p>
<blockquote><p>&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine on<br />
RewriteBase /<br />
RewriteCond %{HTTP_HOST} ^dy03.cn [NC]<br />
RewriteRule ^(.*)$ http://www.dy03.cn/$1 [L,R=301]<br />
&lt;/IfModule&gt;</p></blockquote>
<p>其实我对mod_rewrite的规则写法也不是很了解，只是了解一点点，简单说一下这个规则的意思，不知道对不对。</p>
<p>RewriteCond指的是应用转发规则的条件；RewriteRule则是转发的方法。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phplamp.org/2009/11/htaccess-url-domain-forward/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WinXp Apache虚拟主机开启Mod_rewrite</title>
		<link>http://www.phplamp.org/2009/07/winxp-apache-mod-rewrite/</link>
		<comments>http://www.phplamp.org/2009/07/winxp-apache-mod-rewrite/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 15:17:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[站长笔记]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[虚拟主机]]></category>

		<guid isPermaLink="false">http://www.phplamp.org/?p=307</guid>
		<description><![CDATA[目前开发项目都会用到Rewrite功能，今天稍微研究了一下。记录一下我的配置方法。
注：未考虑安全问题，只为本地开发使用，服务器不建议使用本配置。
WinXp下Apache2.2开启虚拟主机Mod_rewrite功能(.htaccess)：
一，httpd.conf
1. 让Apache2.2加载mod_rewrite.so模块；
去掉：#LoadModule rewrite_module modules/mod_rewrite.so前的#
2. 将AllowOverride None改为AllowOverride All
搜索即可。
二，httpd-vhosts.conf
1. 虚拟主机配置单元，最后面加入代码：RewriteEngine On。然后再项目主目录中加入.htaccess文件即可，当然您也可以将重写规则写入虚拟主机配置单元中，也可以将RewriteEngine On入.htaccess文件中。

例，Localhost开启Mod_rewrite

&#60;VirtualHost *:80&#62; 
 ServerAdmin unknow@phplamp.com 
 DocumentRoot E:\Hosts\localhost 
 ServerName localhost 
 ServerAlias localhost 
 ErrorLog logs/localhost-error_log 
 CustomLog logs/localhost-access_log common 
 # 开启Rewrite  
 RewriteEngine On 
&#60;/VirtualHost&#62; 


]]></description>
			<content:encoded><![CDATA[<p>目前开发项目都会用到Rewrite功能，今天稍微研究了一下。记录一下我的配置方法。</p>
<p>注：未考虑安全问题，只为本地开发使用，服务器不建议使用本配置。</p>
<p>WinXp下Apache2.2开启虚拟主机Mod_rewrite功能(.htaccess)：<span id="more-307"></span></p>
<p><strong>一，httpd.conf</strong></p>
<p>1. 让Apache2.2加载mod_rewrite.so模块；</p>
<p>去掉：#LoadModule rewrite_module modules/mod_rewrite.so前的#</p>
<p>2. 将AllowOverride None改为AllowOverride All</p>
<p>搜索即可。</p>
<p><strong>二，httpd-vhosts.conf</strong></p>
<p>1. 虚拟主机配置单元，最后面加入代码：RewriteEngine On。然后再项目主目录中加入.htaccess文件即可，当然您也可以将重写规则写入虚拟主机配置单元中，也可以将RewriteEngine On入.htaccess文件中。</p>
<div class="codeText">
<div class="codeHead">例，Localhost开启Mod_rewrite</div>
<ol class="dp-cpp">
<li class="alt"><span><span>&lt;VirtualHost *:80&gt; </span></span></li>
<li><span> ServerAdmin unknow@phplamp.com </span></li>
<li class="alt"><span> DocumentRoot E:\Hosts\localhost </span></li>
<li><span> ServerName localhost </span></li>
<li class="alt"><span> ServerAlias localhost </span></li>
<li><span> ErrorLog logs/localhost-error_log </span></li>
<li class="alt"><span> CustomLog logs/localhost-access_log common </span></li>
<li><span class="preprocessor"> # 开启Rewrite </span><span> </span></li>
<li class="alt"><span> RewriteEngine On </span></li>
<li><span>&lt;/VirtualHost&gt; </span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.phplamp.org/2009/07/winxp-apache-mod-rewrite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Godaddy主机空间CakePHP .htaccess编写方法</title>
		<link>http://www.phplamp.org/2009/04/godaddy-cakephp-htaccess/</link>
		<comments>http://www.phplamp.org/2009/04/godaddy-cakephp-htaccess/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 21:50:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[站长笔记]]></category>
		<category><![CDATA[Godaddy]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[框架学习]]></category>

		<guid isPermaLink="false">http://www.phplamp.org/?p=304</guid>
		<description><![CDATA[CakePHP的框架默认的.htaccess不能完美支持Godaddy主机空间。也不是Godaddy空间的Htaccess有问题，而是我们没有写好.htaccess。您可以参考如下代码来配置您的CakePHP项目。
 

Godaddy主机CakePHP项目主目录.htaccess

&#60;IfModule&#160;mod_rewrite.c&#62;&#160;&#160;
&#160;&#160;&#160;&#160;RewriteEngine&#160;on &#160;&#160;
&#160;&#160;&#160;&#160;RewriteBase&#160;/ &#160;&#160;
&#160;&#160;&#160;&#160;RewriteRule&#160;&#160;&#160;&#160;^$&#160;app/webroot/&#160;&#160;&#160;&#160;[L] &#160;&#160;
&#160;&#160;&#160;&#160;RewriteRule&#160;&#160;&#160;&#160;(.*)&#160;app/webroot/$1&#160;[L] &#160;&#160;
&#60;/IfModule&#62;&#160;&#160;


 
 

Godaddy主机CakePHP项目App目录.htaccess

&#60;IfModule&#160;mod_rewrite.c&#62;&#160;&#160;
&#160;&#160;&#160;&#160;RewriteEngine&#160;on &#160;&#160;
&#160;&#160;&#160;&#160;RewriteBase&#160;/ &#160;&#160;
&#160;&#160;&#160;&#160;RewriteRule&#160;&#160;&#160;&#160;^$&#160;&#160;&#160;&#160;webroot/&#160;&#160;&#160;&#160;[L] &#160;&#160;
&#160;&#160;&#160;&#160;RewriteRule&#160;&#160;&#160;&#160;(.*)&#160;webroot/$1&#160;&#160;&#160;&#160;[L] &#160;&#160;
&#60;/IfModule&#62;&#160;&#160;


 
 

Godaddy主机CakePHP项目webroot .htaccess

&#60;IfModule&#160;mod_rewrite.c&#62;&#160;&#160;
&#160;&#160;&#160;&#160;RewriteEngine&#160;On &#160;&#160;
&#160;&#160;&#160;&#160;RewriteBase&#160;/ &#160;&#160;
&#160;&#160;&#160;&#160;RewriteCond&#160;%{REQUEST_FILENAME}&#160;!-d &#160;&#160;
&#160;&#160;&#160;&#160;RewriteCond&#160;%{REQUEST_FILENAME}&#160;!-f &#160;&#160;
&#160;&#160;&#160;&#160;RewriteRule&#160;^(.*)$&#160;/index.php?url=$1&#160;[QSA,L]&#160;&#160; &#160;&#160;
&#60;/IfModule&#62;&#160;&#160;


]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://www.phplamp.org/tag/cakephp/" title="关于CakePHP的其它日志">CakePHP的框架</a>默认的<a href="http://www.phplamp.org/tag/htaccess/" title="关于.htaccess的其它日志">.htaccess</a>不能完美支持Godaddy主机空间</strong>。也不是Godaddy空间的Htaccess有问题，而是我们没有写好.htaccess。您可以参考如下代码来配置您的<strong>CakePHP项目</strong>。<span id="more-304"></span></p>
<div class="c5"> </div>
<div class="codeText">
<div class="codeHead">Godaddy主机CakePHP项目主目录.htaccess</div>
<ol class="dp-xml">
<li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">IfModule</span><span>&nbsp;mod_rewrite.c</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
<li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;RewriteEngine&nbsp;on &nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;RewriteBase&nbsp;/ &nbsp;&nbsp;</span></li>
<li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;RewriteRule&nbsp;&nbsp;&nbsp;&nbsp;^$&nbsp;app/webroot/&nbsp;&nbsp;&nbsp;&nbsp;[L] &nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;RewriteRule&nbsp;&nbsp;&nbsp;&nbsp;(.*)&nbsp;app/webroot/$1&nbsp;[L] &nbsp;&nbsp;</span></li>
<li class=""><span class="tag">&lt;/</span><span class="tag-name">IfModule</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<div class="c5"> </div>
<div class="c5"> </div>
<div class="codeText">
<div class="codeHead">Godaddy主机CakePHP项目App目录.htaccess</div>
<ol class="dp-xml">
<li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">IfModule</span><span>&nbsp;mod_rewrite.c</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
<li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;RewriteEngine&nbsp;on &nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;RewriteBase&nbsp;/ &nbsp;&nbsp;</span></li>
<li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;RewriteRule&nbsp;&nbsp;&nbsp;&nbsp;^$&nbsp;&nbsp;&nbsp;&nbsp;webroot/&nbsp;&nbsp;&nbsp;&nbsp;[L] &nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;RewriteRule&nbsp;&nbsp;&nbsp;&nbsp;(.*)&nbsp;webroot/$1&nbsp;&nbsp;&nbsp;&nbsp;[L] &nbsp;&nbsp;</span></li>
<li class=""><span class="tag">&lt;/</span><span class="tag-name">IfModule</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<div class="c5"> </div>
<div class="c5"> </div>
<div class="codeText">
<div class="codeHead">Godaddy主机CakePHP项目webroot .htaccess</div>
<ol class="dp-xml">
<li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">IfModule</span><span>&nbsp;mod_rewrite.c</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
<li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;RewriteEngine&nbsp;On &nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;RewriteBase&nbsp;/ &nbsp;&nbsp;</span></li>
<li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;RewriteCond&nbsp;%{REQUEST_FILENAME}&nbsp;!-d &nbsp;&nbsp;</span></li>
<li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;RewriteCond&nbsp;%{REQUEST_FILENAME}&nbsp;!-f &nbsp;&nbsp;</span></li>
<li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;RewriteRule&nbsp;^(.*)$&nbsp;/index.php?</span><span class="attribute">url</span><span>=$1&nbsp;[QSA,L]&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
<li class="alt"><span class="tag">&lt;/</span><span class="tag-name">IfModule</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.phplamp.org/2009/04/godaddy-cakephp-htaccess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CAKEPHP .htaccess不重写某子目录或文件</title>
		<link>http://www.phplamp.org/2009/04/cakephp-htaccess-mod-rewrite-subdirectory/</link>
		<comments>http://www.phplamp.org/2009/04/cakephp-htaccess-mod-rewrite-subdirectory/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 21:38:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[站长笔记]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[框架学习]]></category>

		<guid isPermaLink="false">http://www.phplamp.org/?p=303</guid>
		<description><![CDATA[CakePHP框架会把urls重写对自己的友好的urls，适合MVC项目的实施。假如有某一目录不需要CakePHP重写，假如没有重新定义.htaccess将无法访问此目录。假如配置环境为php fastCGI可能会出现：No input file specified.错误。
这时可以自己为.htaccess加一段代码，告诉服务器不转发此子目录即可，这时需要注意的是，此子目录的名称不能为CakePHP Controller的名称（name值）。
修改网站主目录中.htaccess如下（本人使用的CakePHP版本为，最新的CakePHP稳定版：1.2.2.8120 Stable）：
CakePHP不重写某目录.htaccess
# 不重写subdirectory目录
&#60;IfModule mod_rewrite.c&#62;
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/subdirectory/(.*)$
RewriteRule ^.*$ - [L]
&#60;/IfModule&#62;
&#60;IfModule mod_rewrite.c&#62;
RewriteEngine on
RewriteBase /
RewriteRule    ^$ app/webroot/    [L]
RewriteRule    (.*) app/webroot/$1 [L]
&#60;/IfModule&#62;
很多站长会将自己的网站加上一个Google网站管理员工具，假如用CakePHP开发的项目，也需要对主目录的.htaccess加以修改。代码如下：
CakePHP Google管理员工具.htaccess
# 不转发带google前缀的目录或文件
&#60;IfModule mod_rewrite.c&#62;
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/google(.*)$
RewriteRule ^.*$ - [L]
&#60;/IfModule&#62;
&#60;IfModule mod_rewrite.c&#62;
RewriteEngine on
RewriteBase /
RewriteRule    ^$ app/webroot/    [L]
RewriteRule    (.*) app/webroot/$1 [L]
&#60;/IfModule&#62;
]]></description>
			<content:encoded><![CDATA[<p><a title="关于CakePHP的其它日志" href="http://www.phplamp.org/tag/cakephp/">CakePHP框架</a>会把urls重写对自己的友好的urls，适合MVC项目的实施。<strong>假如有某一目录不需要CakePHP重写，假如没有重新定义.htaccess将无法访问此目录。假如配置环境为php fastCGI可能会出现：No input file specified.错误。</strong></p>
<p>这时可以自己为.htaccess加一段代码，告诉服务器不转发此子目录即可，<span style="color: red;">这时需要注意的是，此子目录的名称不能为CakePHP Controller的名称（name值）。</span></p>
<p>修改网站主目录中.htaccess如下（本人使用的CakePHP版本为，最新的CakePHP稳定版：1.2.2.8120 Stable）：</p>
<h3>CakePHP不重写某目录.htaccess</h3>
<blockquote><p># 不重写subdirectory目录<br />
&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_URI} ^/subdirectory/(.*)$<br />
RewriteRule ^.*$ - [L]<br />
&lt;/IfModule&gt;</p>
<p>&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine on<br />
RewriteBase /<br />
RewriteRule    ^$ app/webroot/    [L]<br />
RewriteRule    (.*) app/webroot/$1 [L]<br />
&lt;/IfModule&gt;</p></blockquote>
<p><strong>很多站长会将自己的网站加上一个Google网站管理员工具，假如用CakePHP开发的项目，也需要对主目录的.htaccess加以修改。</strong>代码如下：<span id="more-303"></span></p>
<h3>CakePHP Google管理员工具.htaccess</h3>
<blockquote><p># 不转发带google前缀的目录或文件<br />
&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_URI} ^/google(.*)$<br />
RewriteRule ^.*$ - [L]<br />
&lt;/IfModule&gt;</p>
<p>&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine on<br />
RewriteBase /<br />
RewriteRule    ^$ app/webroot/    [L]<br />
RewriteRule    (.*) app/webroot/$1 [L]<br />
&lt;/IfModule&gt;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.phplamp.org/2009/04/cakephp-htaccess-mod-rewrite-subdirectory/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Php Url规划-单入口程序伪静态实现方法</title>
		<link>http://www.phplamp.org/2009/04/php-url-index-php-htaccess/</link>
		<comments>http://www.phplamp.org/2009/04/php-url-index-php-htaccess/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 01:14:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[站长笔记]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[php url]]></category>
		<category><![CDATA[uri]]></category>
		<category><![CDATA[单入口]]></category>

		<guid isPermaLink="false">http://www.phplamp.org/?p=295</guid>
		<description><![CDATA[伪静态已经不是一个新鲜的名词了，尤其是在现今SEO的炒作中。如何实现伪静态这是每个程序员都关心的问题，除非您不搞SEO。大多的伪静态都是以Htaccess（Apache mod_rewrite）来实现的，但是一个规划不太好的网站要用Htaccess实现，需要写一大堆的代码，而还有某种原因我们不得不放弃Htaccess，或是由于服务器不支持，或是个人偏好等等。
对于单入口（访问网站必需首先通过某一文件，一般都是index.php来实现其它功能的项目）程序来说：
常见的Url大都为：http://www.phplamp.org/index.php?controller=posts&#38;action=index
说实话这样的URL很难看，最重要的是搜索引擎不认它为正常的URL，这很可怕。如何实现一个好看的且与搜索引擎能攀上亲的URL呢。
看这个URL：http://www.phplamp.org/index.php/posts/index/
很新奇的URL创意，这也是我在使用CakePHP框架的过程中体验出来的，此URL相对于彼URL来说：易记，美观，最主要的是搜索引擎虽不认它为老爸，起码不会把它划为黑名单。
解释一下上面的URL，&#8220;posts&#8221;：一般称其为Controller（控制器），由它来决定加载哪个处理文件；&#8221;index&#8221;：一般称其为Action（操作），由它来决定要进行什么操作。所以/posts/index/顾名思义就是posts的主页了。如果后面需要传递参数可以直接加在Action后面。
如下面这个URL：http://www.phplamp.org/index.php/posts/category/1/。列出posts的分类ID为1下的所有内容。
以下是随手写的一个函数来处理这种情况，写的比较匆忙，没进行太多的测试，如发现问题请与我联系。
PHP Url规划测试代码
&#60;?php
function uri() {
// 获取请求的URI
foreach (array(&#8216;REQUEST_URI&#8217;, &#8216;HTTP_X_REWRITE_URL&#8217;, &#8216;argv&#8217;) as $var) {
if ($uri = $_SERVER[$var]) {
if ($var == &#8216;argv&#8217;) {
$uri = $uri[0];
}
break;
}
}
// 去除//情况
$uri = str_replace(&#8216;//&#8217;, &#8216;/&#8217;, $uri);
// 去掉index.php
if (strpos($uri, &#8216;index.php&#8217;) !== false) {
$uri = explode(&#8216;index.php&#8217;, $uri, 2);
}
// 如果没有请求的字符串返回
if (!isset($uri[1])) {
return array(&#8216;controller&#8217; =&#62; &#8221;, &#8216;action&#8217; =&#62; &#8221;);
}
// 分解
$uriBak = explode(&#8216;/&#8217;, $uri[1]);
unset($uri);
// 去除空项
foreach ($uriBak as $val) {
if ($val) {
$uri[] = $val;
}
}
list($controller, $action) = $uri;
$params = array();
if (count($uri) &#62; 2) {
array_shift($uri);
array_shift($uri);
}
$params = $uri;
return
array(
&#8216;controller&#8217; =&#62; $controller,
&#8216;action&#8217; =&#62; $action,
&#8216;params&#8217; =&#62; $params,
);
}
print_r(uri());
?&#62;
接下来您就可以发挥自己的想象去完成一个单入口程序了。基于这种思想有很多开源的框架可以参考一下，比如：国外的CakePHP 国内的Fleaphp
]]></description>
			<content:encoded><![CDATA[<p>伪静态已经不是一个新鲜的名词了，尤其是在现今SEO的炒作中。如何实现伪静态这是每个程序员都关心的问题，除非您不搞SEO。大多的伪静态都是以<a title="博客站关于htaccess的其它日志" href="http://www.phplamp.org/tag/htaccess/">Htaccess（Apache mod_rewrite）</a>来实现的，但是一个规划不太好的网站要用Htaccess实现，需要写一大堆的代码，而还有某种原因我们不得不放弃Htaccess，或是由于服务器不支持，或是个人偏好等等。</p>
<p>对于<a title="博客站关于单入口的其它日志" href="http://www.phplamp.org/tag/%e5%8d%95%e5%85%a5%e5%8f%a3/"><strong>单入口</strong></a>（访问网站必需首先通过某一文件，一般都是index.php来实现其它功能的项目）程序来说：</p>
<p>常见的Url大都为：http://www.phplamp.org/index.php?controller=posts&amp;action=index</p>
<p>说实话这样的URL很难看，最重要的是搜索引擎不认它为正常的URL，这很可怕。如何实现一个<strong>好看的且与搜索引擎能攀上亲的URL</strong>呢。</p>
<p>看这个URL：http://www.phplamp.org/index.php/posts/index/<span id="more-295"></span></p>
<p>很新奇的URL创意，这也是我在使用CakePHP框架的过程中体验出来的，此URL相对于彼URL来说：<strong>易记，美观，最主要的是搜索引擎虽不认它为老爸，起码不会把它划为黑名单。</strong></p>
<p>解释一下上面的URL，<strong>&#8220;posts&#8221;：一般称其为Controller（控制器），由它来决定加载哪个处理文件；&#8221;index&#8221;：一般称其为Action（操作），由它来决定要进行什么操作。</strong>所以/posts/index/顾名思义就是posts的主页了。如果后面需要传递参数可以直接加在Action后面。</p>
<p>如下面这个URL：http://www.phplamp.org/index.php/posts/category/1/。列出posts的分类ID为1下的所有内容。</p>
<p>以下是随手写的一个函数来处理这种情况，写的比较匆忙，没进行太多的测试，如发现问题请与我联系。</p>
<h3>PHP Url规划测试代码</h3>
<blockquote><p>&lt;?php<br />
function uri() {<br />
// 获取请求的URI<br />
foreach (array(&#8216;REQUEST_URI&#8217;, &#8216;HTTP_X_REWRITE_URL&#8217;, &#8216;argv&#8217;) as $var) {<br />
if ($uri = $_SERVER[$var]) {<br />
if ($var == &#8216;argv&#8217;) {<br />
$uri = $uri[0];<br />
}<br />
break;<br />
}<br />
}</p>
<p>// 去除//情况<br />
$uri = str_replace(&#8216;//&#8217;, &#8216;/&#8217;, $uri);</p>
<p>// 去掉index.php<br />
if (strpos($uri, &#8216;index.php&#8217;) !== false) {<br />
$uri = explode(&#8216;index.php&#8217;, $uri, 2);<br />
}</p>
<p>// 如果没有请求的字符串返回<br />
if (!isset($uri[1])) {<br />
return array(&#8216;controller&#8217; =&gt; &#8221;, &#8216;action&#8217; =&gt; &#8221;);<br />
}</p>
<p>// 分解<br />
$uriBak = explode(&#8216;/&#8217;, $uri[1]);<br />
unset($uri);</p>
<p>// 去除空项<br />
foreach ($uriBak as $val) {<br />
if ($val) {<br />
$uri[] = $val;<br />
}<br />
}</p>
<p>list($controller, $action) = $uri;</p>
<p>$params = array();<br />
if (count($uri) &gt; 2) {<br />
array_shift($uri);<br />
array_shift($uri);<br />
}<br />
$params = $uri;</p>
<p>return<br />
array(<br />
&#8216;controller&#8217; =&gt; $controller,<br />
&#8216;action&#8217; =&gt; $action,<br />
&#8216;params&#8217; =&gt; $params,<br />
);<br />
}</p>
<p>print_r(uri());<br />
?&gt;</p></blockquote>
<p>接下来您就可以发挥自己的想象去完成一个单入口程序了。基于这种思想有很多开源的框架可以参考一下，比如：<a title="CakePHP" href="http://www.cakephp.org" target="_blank">国外的CakePHP</a> <a href="http://www.fleaphp.org" target="_blank">国内的Fleaphp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.phplamp.org/2009/04/php-url-index-php-htaccess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>discuz7.0 搜索引擎优化 htaccess下载</title>
		<link>http://www.phplamp.org/2009/01/discuz7-htaccess-download/</link>
		<comments>http://www.phplamp.org/2009/01/discuz7-htaccess-download/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 16:55:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[站长笔记]]></category>
		<category><![CDATA[discuz]]></category>
		<category><![CDATA[discuz7]]></category>
		<category><![CDATA[htaccess]]></category>

		<guid isPermaLink="false">http://www.phplamp.org/?p=278</guid>
		<description><![CDATA[discuz7.0 搜索引擎优化.htaccess内容如下：

discuz7.0 htaccess

# 将 RewriteEngine 模式打开
RewriteEngine On
 
# 修改以下语句中的 /discuz 为你的论坛目录地址，如果程序放在根目录中，请将 /discuz 修改为 /
RewriteBase /discuz
 
# Rewrite 系统规则请勿修改
RewriteRule ^archiver/((fid&#124;tid)-[\w\-]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&#38;page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&#38;extra=page\%3D$3&#38;page=$2
RewriteRule ^space-(username&#124;uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1


点击下载：discuz7.0 .htaccess
]]></description>
			<content:encoded><![CDATA[<p>discuz7.0 搜索引擎优化.htaccess内容如下：</p>
<div class="codeText">
<div class="codeHead">discuz7.0 htaccess</div>
<ul class="dp-c" style="padding:3px;">
<li># 将 RewriteEngine 模式打开</li>
<li>RewriteEngine On</li>
<li> </li>
<li># 修改以下语句中的 /discuz 为你的论坛目录地址，如果程序放在根目录中，请将 /discuz 修改为 /</li>
<li>RewriteBase /discuz</li>
<li> </li>
<li># Rewrite 系统规则请勿修改</li>
<li>RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1</li>
<li>RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&amp;page=$2</li>
<li>RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&amp;extra=page\%3D$3&amp;page=$2</li>
<li>RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2</li>
<li>RewriteRule ^tag-(.+)\.html$ tag.php?name=$1</li>
</ul>
</div>
<p><span style="font-size:14px;font-weight:bold">点击下载：<a title="discuz7.0 搜索引擎优化 htaccess下载" href="http://www.phplamp.org/wp-content/uploads/2009/01/discuz7_htaccess.rar" target="_blank">discuz7.0 .htaccess</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.phplamp.org/2009/01/discuz7-htaccess-download/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
