zoukankan      html  css  js  c++  java
  • TP框架中APP_SUB_DOMAIN_DEPLOY什么意思?

    'APP_SUB_DOMAIN_DEPLOY' => false, // 是否开启子域名部署

    thinkphp开启域名部署/子域名部署/泛域名部署/IP访问部署

     

             ThinkPHP支持模块(甚至可以包含控制器)的完整域名、子域名和IP部署功能,让你的模块变得更加灵活,模块绑定到域名或者IP后,URL地址中的模块名称就可以省略了,所以还可以起到简化URL的作用。

            无论是子域名还是IP部署,首先要在应用配置文件中开启APP_SUB_DOMAIN_DEPLOY,这是前提,然后配置域名部署规则APP_SUB_DOMAIN_RULES

                 'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名或者IP配置

                 'APP_SUB_DOMAIN_RULES' => array(

                /* 域名部署配置

                 *格式1: '子域名或泛域名或IP'=> '模块名[/控制器名]';

                *格式2: '子域名或泛域名或IP'=>  array('模块名[/控制器名]','var1=a&var2=b&var3=*');

                */

                 )

            域名部署的定义格式21的区别在于格式2可以隐式传入额外的参数。        域名和IP的解析涉及到DNS解析以及Apache等服务器的配置,这块不再详细描述,请参考相关百度资料。

            域名或者IP部署到模块并不需要设置模块访问列表。

     

            完整域名部署

            可以在域名规则中直接定义完整的域名,例如:

                 'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名配置

                 'APP_SUB_DOMAIN_RULES' => array(

                'admin.domain1.com' =>  'Admin', // admin.domain1.com域名指向Admin模块

                'test.domain2.com' =>  'Test', // test.domain2.com域名指向Test模块

                ),

              

             在域名部署之前的访问地址: http://www.domain.com/Admin/Index/index   http://www.domain.com/Test/Index/index

              

            域名部署后的访问地址变成:  http://admin.domain1.com/Index/index   http://test.domain2.com/Index/index

     

             子域名部署

              

             子域名部署包括任意级子域名的支持,在你的应用配置文件中增加如下配置参数:

     

                 'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名配置

                 'APP_SUB_DOMAIN_RULES' => array(

                'admin' => 'Admin', //  admin子域名指向Admin模块

                'test' => 'Test', // test子域名指向Test模块

                 ),

          部署之前的访问地址:http://www.domain.com/Admin/Index/index

          部署后的访问地址变成:  http://admin.domain.com/Index/index

          如果你的部署域名后缀是二级后缀,例如 com.cn  net.cn 或者 org.cn 之类的话,为了让系统更好的识别你的子域名,需要配置APP_DOMAIN_SUFFIX如下:

     

               'APP_DOMAIN_SUFFIX'=>'com.cn'

                APP_DOMAIN_SUFFIX参数不支持设置多个后缀,如果你是一级域名后缀的话则该参数可以无需任何设置。

     

             传入参数

     

            子域名部署的时候,可以传入隐式的参数,例如:

     

                 'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名配置

                 'APP_SUB_DOMAIN_RULES' => array(

                'admin' =>  array('Admin','var1=1&var2=2'), // admin子域名指向Admin模块

                 ),

     

            访问 http://admin.domain.com/Index/index 的同时会传入 $_GET['var1'] =  1  $_GET['var2'] = 2 两个参数。

     

            控制器绑定

     

             子域名部署还可以支持绑定某个控制器,例如:

     

                'APP_SUB_DOMAIN_DEPLOY' => 1, //  开启子域名配置

                'APP_SUB_DOMAIN_RULES' => array(

                 'test.admin' => 'Admin/Test', // test.admin子域名指向Admin模块的Test控制器

                 ),

     

            部署之前的访问地址:  http://www.domain.com/Admin/Test/index

     

            部署后的访问地址:  http://test.admin.domain.com/index

     

             泛域名部署

     

            如果要部署某个模块到泛域名支持,可以使用:

     

                 'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名配置

                 'APP_SUB_DOMAIN_RULES' => array(

                'admin' => 'Admin', //  admin域名指向Admin模块

                '*' => array('Test','var1=1&var2=*'), //  二级泛域名指向Test模块

                '*.user' => array('User','status=1&name=*'),  // 三级泛域名指向User模块

                ),

     

            配置后,我们可以访问:

     

                 http://hello.domain.com/Index/index

     

            访问Test模块 并隐式传入$_GET['var1']  = 1  $_GET['var2'] = 'hello' 两个参数。

     

            访问如下地址:

     

                 http://think.user.domain.com/Index/index

     

            访问User模块,并隐式传入  $_GET['status'] = 1  $_GET['name'] = 'think' 两个参数。

     

             在配置传入参数的时候,如果需要使用当前的泛域名作为参数,可以直接设置为"*"即可。

     

                 目前只支持二级域名和三级域名的泛域名部署。

     

             IP访问部署

     

            可以为某些模块配置IP访问规则,例如:

     

                 'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名配置

                 'APP_SUB_DOMAIN_RULES' => array(

                '22.56.78.9' => 'Admin',  // 22.56.78.9指向Admin模块

                ),

     

    文章来源:刘俊涛的博客

    欢迎关注,有问题一起学习欢迎留言、评论

  • 相关阅读:
    Workflow in Dynamics AX2009
    Apply Solution Upgrade in Pipeline for Power Platform
    Unmanaged
    数据库行级别权限- MS SQL SERVER 2016
    Power Fx coming to Model-driven Power Apps, Dataverse
    create a new tab and embed the Audit History in the IFrame
    Display different Business Process Flow based on user security role in D365 CE /PowerApps
    [Tip] Business Process Flow’s Enable Security Roles button issue after upgrading to Dynamics 365 / PowerApps
    Control Next and Previous stage movement in Dynamics 365/ CDS Business Process flows using Client API / PowerApps
    How to Set Value in A Regarding Field Using Easyrepro in Dynamics CRM / PowerApps
  • 原文地址:https://www.cnblogs.com/lovebing/p/10069692.html
Copyright © 2011-2022 走看看