• ThinkPHP5多模板配置二级域名


    现在很多项目都有PC端和移动端,PC和移动端都分别在不同模块,而“www”二级域名是直接访问PC端(index模块),如果想要访问移动端“www.域名.com/mobile”,这样域名就太长了,下面我教大家一个方法缩短域名。

    准备

    ThinkPHP支持完整域名、子域名和IP部署的路由和绑定功能,同时还可以起到简化URL的作用。

    要启用域名部署路由功能,首先需要在config.php开启:

    // 域名部署
    'url_domain_deploy'      => true,

    定义域名部署规则支持两种方式:动态注册和配置定义

    动态注册

    可以在应用的公共文件或者application oute.php动态注册域名部署规则,例如:

    <?php
    use thinkRoute; Route::domain('m','mobile');

    这样访问“m.域名.com”就可以直接访问mobile模板

    支持绑定的时候添加默认参数,例如:

    // m子域名绑定到mobile模块
    Route::domain('m','mobile?var=thinkphp');

    除了绑定到模块之外,还隐式传入了一个$_GET['var'] = 'thinkphp' 变量。

    支持直接绑定到控制器,例如:

    // m子域名绑定到mobile模块的index控制器
    Route::domain('m','mobile/index');

    如果你的域名后缀比较特殊,例如是com.cn或者net.cn 之类的域名,需要在config.php配置:

    'url_domain_root'=>'thinkphp.com.cn'

    配置定义方式

    除了动态注册之外,还支持直接在application oute.php(路由配置文件)中定义域名部署规则,例如:

    <?php
    use thinkRoute;
    Route::domain('mo','mo');
    return [
        //域名绑定到模块
        '__domain__'  => [
            'api'   => 'api',
            'm'   => 'mobile',
            'www'   => 'index',
        ],
    ];

    注意: 域名绑定到模块后,"www.域名.com"他会默认加上index模块,如果访问“www.域名.com/index”哪这个index不是模块而是控制器名称(因为默认加上index模块)

    绑定路由规则

    可以把域名绑定到一系列指定的路由规则,例如:

    Route::domain('blog',[
        // 动态注册域名的路由规则
        ':id' => ['blog/read',['method'=>'GET'],['id'=>'d+']],
        ':name'=>'blog/read',
    ]);

    如果使用配置文件配置的话,可以按照下面的方式:

    return [
        '__domain__'=>[
            'blog'      => [
                // 动态注册域名的路由规则
                ':id' => ['blog/read',['method'=>'GET'],['id'=>'d+']],
                ':name'=>'blog/read',
            ],
        ],
        // 下面是其它的路由规则定义
    ]





  • 相关阅读:
    IE 创建条件样式
    Weinre
    three.js 之 透明物体不能正常显示
    用shader实现流动的水面(webgl)
    用js的方式运行c程序之webassemly
    three.js效果之热力图和轨迹线
    three.js后期之自定义shader通道实现扫光效果
    《计算机网络》物理层
    《计算机网络》概述
    pixi小游戏开发(vue+typescript)
  • 原文地址:https://www.cnblogs.com/bushui/p/12098138.html
Copyright © 2020-2023  润新知