• 技术文章 >php框架 >Workerman

    php workerman伪静态改造详解

    尚2021-02-01 12:08:58转载883

    一、找到\vendor\workerman\workerman\WebServer.php 第176行,改为以下内容,增加对html扩展名文件不存在的判断

            if (in_array($workerman_file_extension,['php','html']) && !is_file($workerman_file)) {
                $workerman_file = "{$workerman_root_dir}/index.php";
                $workerman_file_extension = 'php';
                if (!is_file($workerman_file)) {
                    $workerman_file           = "{$workerman_root_dir}/index.html";
                    $workerman_file_extension = 'html';
                }
            }

    这样以后,只要访问扩展名为html的文件,且这个文件不存在,就会自动重定向到index.php,然后再在index.php进行判断就行了

    二、index.php改造,输出页面前,增加以下判断:

    //重定向判断
    $uri=$_SERVER['REQUEST_URI'];
    $ext=strtolower(substr($uri,-4,4));
    if(is_cli()&&$ext=='html'){
      $_GET['_']=substr($uri,1,strlen($uri)-5);
    }

    比如,我访问的地址是http://c.com/Users_login.html,即访问index.php?_=Users_login

    三、根据$_GET['_'],分割下划线,判断加载哪一个类和类的方法,就行了。比如:

    $_GET['_']=isset($_GET['_'])?$_GET['_']:strcode('Index_index');
    $strs=strcode($_GET['_'],'DECODE');
    if(!$strs)xdie('param error.');
    $d=preg_split('/[\.\_]/',$strs);
    if(count($d)<2)xdie('error:param');
      
    $class=$d[0].'Action';
    $action=$d[1];

    再加载类并运行就行了。

    更多workerman知识请关注PHP中文网workerman教程栏目。

    以上就是php workerman伪静态改造详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:php workerman
    上一篇:在WorkerMan中为什么要制定协议? 下一篇:workerman的入口文件
    线上培训班

    相关文章推荐

    • phpcms怎么判断是否有图片• phpcms控制器在哪• phpcms 不支持iframe怎么办• phpcms怎么发布文章

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网