PHP伪静态的处理

来源:互联网 发布:淘宝双皇冠店铺多少钱 编辑:程序博客网 时间:2024/06/06 02:10

PHP伪静态的处理

1,伪静态简介:

伪静态,实际是动态的网页。只是将网页的URL改变成类似静态的。类似如下:    domain/niushaogang.php?id=2&status=0 --->   /niushaogang.php/2/1.html

处理方法:1,PATH_INFO模式正则处理(输入静态页面的时候$_SERVER path_info中会有path_info把后面的路径输出)        2,服务器rewrite重写(Nginx服务器默认不支持path_info模式)

2,伪静态的生成


1,PATH_INFO方法    http://niushao.net/2/3/4.html      $_SERVER['PATH_INFO'] = /2/3/4.html    利用正则取出关键数据,根据数据库查询即可    $reg = "/^\/(\d+)\/(\d+)\/(\d+).html/";

代码:    <?php        echo "<pre>";        //http://niushao.net/2/3/4.html;        //http://niushao.net?a=2&b=3&c=4;        //print_r($_SERVER);        $reg = "/^\/(\d+)\/(\d+)\/(\d+).html/";        preg_match($reg,$_SERVER['PATH_INFO'],$key_arr);        /*        echo "<pre>";        print_r($key_arr);        echo "</pre>";        */        $id1 = $key_arr[1];        $id2 = $key_arr[2];        $id3 = $key_arr[3];        if(preg_match($reg,$_SERVER['PATH_INFO'],$key_arr)){             //假如匹配成功,就可以用$id1,$id2,$id3来访问数据库根据条件查询数据以及返回数据            echo "$id1-$id2-$id3";        }else{             //假如匹配不成功,到这里,防止用户乱输        }    ?>

2,服务器rewrite重写    apache:        绑定域名的权限中,开启rewrite的引擎            RewriteEngine on            RewriteCond  %{DOCUMENT_ROOT}%{REQUEST_FILENAME}!-d            RewriteCond  %{DOCUMENT_ROOT}%{REQUEST_FILENAME}!-f            RewriteRule ^/([0-9]*).html$/?id1=$1    Nginx:后期会在nginx配置文件详解中写Nginx的rewrite重写功能
0 0