文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PHP技巧系列 – PHP实现URL静态化

PHP技巧系列 – PHP实现URL静态化

时间:2010-09-21  来源:netlawe

从今天开始会陆续穿插一些PHP的使用技巧,以更方便大家在基础的学习过程中,对PHP能有一个更清晰的认识和使用。

现在网上的绝大多数页面都是动态页面,而我们为了保证对搜索引擎友好,让搜索引擎收录更加方便,因此需要把动态页面进行静态化,但如何实现静态就需要我们从程序方面进行考虑了。

对PHP来讲,实现程序页面静态化有两个方式:生成真正的静态化页面,另一种是就是伪静态,下面我就对这两种方式分别进行详细的介绍和说明。

真正的静态化页面

真正的静态化页面是通过生成静态的html页面,并采用采用某种机制定时刷新静态页面,这种方式对用户访问来说效率最高,能够支持较大的访问量,同时对后台数据库的操作大大降低,能够让有限的服务器资源做更多其他的工作。但这种方式也有一个弊端,就是对服务器程序有一定要求,如果网站的内容很庞大,在生成静态页面及进行存储读取方面可能就会有一些影响,不过采用合理的机制可以减少和避免这种情况发生。

这种方式适合那种CMS系统,特别是内容添加上去以后,不会或很少会进行频繁修改更新操作的网站。比较常见的方式是使用模版程序进行实现,在PHP 中,最常用的大概应该是smarty了吧。

PHP实现伪静态

再有一种就是伪静态方式,即用户和搜索引擎看到的是.html后缀的静态页面,但实际上它还是动态程序,只不过是通过某种方式进行了伪装。

这种方式也有两种实现方式:

第一种是通过Web服务器,进行URL Rewrite实现链接的静态化,下面以apache为例来说明一下其实现方式。对于有服务器配置权限的用户,推荐使用Apache的 mod_rewrite模块,这里假设已经安装好mod_rewrite模块。打开Apache的配置文件,找到相应主机的部分,添加以下代码:

RewriteEngine On RewriteRule ^/abc/([a-z]+)/([0-9]+).html$ /abc.php?action=$1&id=$2

然后在shell里执行service httpd reload,让Apache重新载入配置就好了。

但对于我们大多数人来讲,我们购买的只是空间,根本没有权限去修改apache的配置文件,那就没有办法了吗?不,当然有办法,首先我们进入到我们的空间的根目录下(如public_html),然后建立一个文件名为.htaccess的文件。这个文件内容基本如下:

RewriteEngine on RewriteBase / RewriteRule ^post/([0-9]+).htm read.php?1 RewriteRule ^post/([0-9]+)_([0-9]+).htm read.php?1&page=2 RewriteRule ^post/([0-9]+)_([0-9]+)_([0-9]+).htm read.php?1&page=2∂=3

这实际上也是一种重写的方式,这种方式适合与我们广大的个人站长。另一种实现伪静态的方式就是通过程序来进行实现了,如果你对程序实现感兴趣,就可以使用这种方式实现:

函数代码:

function  mod_rewrite(){          if ( isset (  $_SERVER [ ’ PATH_INFO ’ ])){                   $url   =   substr (  $_SERVER [ ’ PATH_INFO ’ ] , 1 );                   $url   =   explode ( ’ / ’ ,  $url );                  foreach  (  $url   as    $key   =>  $value ){                          if (  $key % 2 != 1 ){                                  if (  $value != ’’ )  $_GET [  $value ] =  $url [  $key + 1 ];                                   $querystring [] =  $value . ’ = ’ .  $url [  $key + 1 ];                         }                 }                   $_SERVER [ ’ QUERY_STRING ’ ] = implode ( " & " ,  $querystring );      $_SERVER [ ’ PHP_SELF ’ ] = substr (  $_SERVER [ ’ PHP_SELF ’ ]  , 0 , strpos (  $_SERVER [ ’ PHP_SELF ’ ] , ’ .php ’ ) + 4 );                   $_SERVER [ ’ REQUEST_URI ’ ] =  $_SERVER [ ’ PHP_SELF ’ ] . ’ ? ’ .  $_SERVER [ ’ QUERY_STRING ’ ];         } }

在你的程序开始引用该函数,然后直接调用mod_rewrite()函数就可以进行转换了。
如原始地址:http://www.hongxincao.com/test.php?arc=231
则转换后的地址为:http://www.phpweblog.net/test.php/arc/231

基本利用PHP实现url静态化的方式就是上面这些了,如果你仔细看代码和命令的话,会发现,静态化其实质上都是一样的,都是通过某种手段把动态化的链接进行转换成为静态链接(真正静态化页面不算)。

好了,关于PHP实现URL静态化的内容就介绍到这里了,有什么问题欢迎大家与我共同交流哦。

文章来源:红心草博客
原文地址:http://www.hongxincao.com/archives/303.html

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载