• php url静态化


    从今天开始会陆续穿插一些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静态化的内容就介绍到这里了,有什么问题欢迎大家与我共同交流哦。

  • 相关阅读:
    e家modem共享上网方法
    千里奔丧
    解决dbvisualizer乱码问题Ubuntu手记之软件
    目录结构Ubuntu手记之系统配置
    javaFTP编程
    JAVA运行环境设置
    VPNCUbuntu手记之软件
    清洗节气门
    IPMSGUbuntu手记之软件
    AIX下的JAVA线程监视
  • 原文地址:https://www.cnblogs.com/firstdream/p/2425447.html
Copyright © 2020-2023  润新知