PAHT

    xiaoxiao2021-12-14  19

    PHP伪静态写法--其一

    伪静态又名:URL重写 

    主要是为了SEO而生的。

    方法一:

    比如这个网页

    /soft.php/1,100,8630.html

    其实处理的脚本是soft.php 参数为1,100,8630

    相当于soft.php?a=1&b=1=100&c=8630 只不过这样的URL太难记。搜索引擎也不喜欢。

    下面以程序为例讲一下PHP伪静态的程序实现方法,其实这方法我之前已经有在其它论坛社区发过

    程序为例:

    /soft.php/1,100,8630.html

    CODE:

    //利用server变量 取得PATH_INFO信息 该例中为 /1,100,8630.html   也就是执行脚本名后面的部分

    if(@$path_info =$_SERVER["PATH_INFO"]){

    //正则匹配一下参数

    if(preg_match("/\/(\d+),(\d+),(\d+)\.html/si",$path_info,$arr_path)){

    $gid     =intval($arr_path[1]); //取得值 1

    $sid     =intval($arr_path[2]);   //取得值100

    $softid   =intval($arr_path[3]);   //取得值8630

    }else die("Path:Error!");

    //相当于soft.php?gid=1&sid=100&softid=8630

    ================================================

    安全狗应该是存在类似白名单机制的,特定的静态资源后缀请求就不处理直接交给webserver 这种处理看起来没问题其实是存在隐患的 Apache和IIS默认都开启pathinfo支持 来做个测试

    对php来说 请求的是sqlin.php 后面的/pathinfo.css是 PATH_INFO 但是安全狗好像把 pathinfo.css 当作了真正的请求对象,因为是静态资源 所以不做处理直接把请求丢给了php。

    sqlin.php/pathinfo.css 模拟实现伪静态的参数  安全狗把他当成了静态文件 

    转载请注明原文地址: https://ju.6miu.com/read-971244.html

    最新回复(0)