PHP实现URL静态化
来源:互联网 发布:武汉有编程学 编辑:程序博客网 时间:2024/05/18 04:53
从今天开始会陆续穿插一些PHP的使用技巧,以更方便大家在基础的学习过程中,对PHP能有一个更清晰的认识和使用。
现在网上的绝大多数页面都是动态页面,而我们为了保证对搜索引擎友好,让搜索引擎收录更加方便,因此需要把动态页面进行静态化,但如何实现静态就需要我们从程序方面进行考虑了。
对PHP来讲,实现程序页面静态化有两个方式:生成真正的静态化页面,另一种是就是伪静态,下面我就对这两种方式分别进行详细的介绍和说明。
真正的静态化页面
真正的静态化页面是通过生成静态的html页面,并采用采用某种机制定时刷新静态页面,这种方式对用户访问来说效率最高,能够支持较大的访问量,同时对后台数据库的操作大大降低,能够让有限的服务器资源做更多其他的工作。但这种方式也有一个弊端,就是对服务器程序有一定要求,如果网站的内容很庞大,在生成静态页面及进行存储读取方面可能就会有一些影响,不过采用合理的机制可以减少和避免这种情况发生。
这种方式适合那种CMS系统,特别是内容添加上去以后,不会或很少会进行频繁修改更新操作的网站。比较常见的方式是使用模版程序进行实现,在PHP中,最常用的大概应该是smarty了吧。
PHP实现伪静态
再有一种就是伪静态方式,即用户和搜索引擎看到的是.html后缀的静态页面,但实际上它还是动态程序,只不过是通过某种方式进行了伪装。
这种方式也有两种实现方式:
第一种是通过Web服务器,进行URL Rewrite实现链接的静态化,下面以apache为例来说明一下其实现方式。对于有服务器配置权限的用户,推荐使用Apache的mod_rewrite模块,这里假设已经安装好mod_rewrite模块。打开Apache的配置文件,找到相应主机的部分,添加以下代码:
RewriteEngine OnRewriteRule ^/abc/([a-z]+)/([0-9]+).html$ /abc.php?action=$1&id=$2
然后在shell里执行service httpd reload,让Apache重新载入配置就好了。
但对于我们大多数人来讲,我们购买的只是空间,根本没有权限去修改apache的配置文件,那就没有办法了吗?不,当然有办法,首先我们进入到我们的空间的根目录下(如public_html),然后建立一个文件名为.htaccess的文件。这个文件内容基本如下:
RewriteEngine onRewriteBase /RewriteRule ^post/([0-9]+).htm read.php?1RewriteRule ^post/([0-9]+)_([0-9]+).htm read.php?1&page=2RewriteRule ^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静态化
- PHP实现URL静态化
- php实现url伪静态化
- php URL静态化
- php实现url伪静态化,全过程详解
- php url 重写 静态化
- php为静态实现之URL重写
- PHP url伪静态
- php实现静态化
- 伪静态URL重写技术实现方法 php asp
- 伪静态URL重写技术实现方法 php asp
- 实现PHP伪静态的方式之URL重写
- 通过URL Rewrite实现链接静态化
- URLRewrite 实现URL地址伪静态化
- 使用URLRewrite 实现URL伪静态化
- 使用UrlRewrite实现URL伪静态化
- grails Url Mapping 实现伪静态化
- UrlRewrite---实现url伪静态化
- AfxMessageBox问题
- 关于pssm的解释
- 逐行分析u-boot
- Axis2调用使用DataHandler传递字节数组
- 读写器IC--POWERBUILD例子代码
- PHP实现URL静态化
- 框架分层
- stagefright + omx小结
- Perl语言简介
- 如何解决Flickr看不到图片的问题
- 微软一站式示例代码库 6月再次更新14个新示例代码
- c#基础点滴
- 初始化
- Winform 三层架构小例子