Thinkphp6如何去掉url中的应用目录

知识技术 2021-08-21 19:14 2677
转载请务必注明: 来源:《建站管家》https://www.df81.com/news/216.html

Thinkphp6如何去掉url中的应用目录,tp6隐藏应用名路径的方法,简化URL地址设置方法教程:


第一步:我们需要安装多应用模式,thinkphp6默认是单应用模式

如果要使用多应用模式,你需要安装多应用模式扩展think-multi-app。

composer require topthink/think-multi-app

注:thinkphp5.0->thinkphp5.1 是不需要安装相关模块,直接创建相关文件模块就可以


第二步:利用Nginx伪静态来设置达到我们想要简化URL效果

if (!-e $request_filename) {
    rewrite ^/admin/(.*)$ /index.php?s=/admin/$1; //后台应用
    rewrite ^/api/(.*)$ /index.php?s=/api/$1; //其他应用
    rewrite ^((?!/home).*)$ /index.php?s=/home/$1; ##隐藏默认模块名 /home
    rewrite  ^(.*)$  /index.php?s=$1 last;
    break;
}

注:设置完成记得重启一下Nginx服务哦


第二种方法可以增加应用入口来实现:

thinkphp6 允许为每个应用创建单独的入口文件而不通过index.php入口文件访问多个应用

//这是前台应用:

tp6如何去掉url中的应用目录,Thinkphp6默认隐藏应用名路径方法

前台访问:https://www.df81.com/contact.html 这样的形式来访问


//这是后台应用:

tp6隐藏应用名路径的方法

后台访问:http://www.xxxx.com/sysusezan.php/test/index.html 这样的形式来访问

Thinkphp6如何去掉url中的应用目录

访问之后会出控制器不存在!!!!


下面使用方法来简化后端 url路径:

/**
 * Url生成
 * @param string      $url    路由地址
 * @param array       $vars   变量
 * @param bool|string $suffix 生成的URL后缀
 * @param bool|string $domain 域名
 * return string
 */
function adminurl(string $url = '', array $vars = [], $suffix = true, $domain = false) {
    $defalutModule = 'sysusezan';
    $currentModule = app('http')->getName();
    $string = (string) url($url, $vars, $suffix, $domain);
    $hideHomeName = true; // 是否去除url中默认模块名sysusezan/
    if($hideHomeName && $currentModule == $defalutModule) {
        #去除url中默认模块名sysusezan
        $search = '/'.$defalutModule.'/';
        $pos = stripos($string, $search);
        $string = substr($string, 0, $pos). '/'. substr($string, $pos + strlen($search));
    }
    return $string;
}
后台路径方法 “{:adminurl('test/index')}”而不是thinkphp内置方法url


本文转载自:https://www.blogxuan.com/


点赞 (0)

收藏 (0)

本站部分信息来源网络,如有侵权,请联系QQ:1062129401删除。

上一篇: 《建站管家》二次开发文档

下一篇: wordpress自定义设置SEO标题、关键词和描述

请先登录后,再发表评论 ~ ~
发表评论
发表评论
发表帖子
广告位招租( ¥5 / 天 )
点击咨询
相关帖子

如果要判断文件是否存在,用函数 is_file(),如果要判断目录是否存在,用函数 is_dir()
用宝塔安装TP程序后,网站前台可以访问,后台无法访问,不是程序问题,而是web服务器环境配置问题(PHP配置),出现这种问题,一般是windows主机安装宝塔造成的,linux安装宝塔不会出现此错误
广告位招租( ¥3 / 天 )
点击咨询
广告位招租( ¥2 / 天 )
点击咨询
广告位招租( ¥1 / 天 )
点击咨询
最新帖子

小朋友,你爸爸是谁啊?这很单纯的,就像我们碰到别人会问:你吃过饭了吗?类似;许多人初次相识,经常会问:你是做什么的啊?你做什么,好像决定你收入的高低,你,资产的范围
1、升级框架到ThinkPHP8.0.3【要求PHP8.1+环境,推荐PHP8.1】 2、启用/禁用调试模式等小细节改进
后台点击生成站点地图 一直转圈圈没有反应,
在线客服