PHP伪静态的处理

5 篇文章 0 订阅

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重写功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值