'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=*');

            */

             )

和1的区别在于格式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模块

            ),

 

文章来源:刘俊涛的博客

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

TP框架中APP_SUB_DOMAIN_DEPLOY什么意思?的更多相关文章

  1. TP框架中关于if、else 分支结构逻辑错误

    TP框架中关于if.else 分支结构逻辑错误 代码中没有任何错误 将注释往下一行就可以解决 造成问题的原因: TP框架中 想分配变量可以使用assign方法 在[模块]中: $this->as ...

  2. TP框架中如何使用SESSION限制登录?

    TP框架中如何使用SESSION限制登录? 之前总是被问题今天才明白,最高效的来做页面访问限制问题. OOP思想中的继承特性,实现验证,是否已经登录,不必每个页面都进行判断. 实现如下: 继承Cont ...

  3. TP框架中ajax post请求时提示404

    ajax post请求时提示404错误 TP框架中ajax post请求时提示404 找了半天是 控制器中方法有错误! 下次再遇到去控制器方法中找一步一步找,肯定能找到,我是单词拼错了!

  4. TP框架中field查询字段

    TP框架中field查询字段 不是fields 也不是files !!!! 不是fields 也不是files !!!! 不是fields 也不是files !!!! 不是fields 也不是file ...

  5. TP框架中模板赋值

    TP框架中模板赋值 $this->assign('name',$value); $this->name = $value; // 两种写法是等效的

  6. TP框架中模糊查询实现

    TP框架中模糊查询实现 $where['g.name'] = array('like','%'.$groupname.'%'); 表达式查询 上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式 ...

  7. tp框架中的一些疑点知识-7

    mysqli是用面向对象的,所以用箭头对象语法, 而mysql是用C语言面向过程写的, 所以用的都是php全局函数 式的写法. tinkle: 叮叮当当的响; (口语)一次电话, i will giv ...

  8. tp框架中的一些疑点知识-5

    关于vim中的缓存区的前后bp和bn的界定 通过命令ls可以看到 缓存区的 排序. 最开始打开的文件排在最上面, 序号最小. 那么它们就是 更 前 的缓冲区. 序号更前的用bp, 序号靠后的用bn. ...

  9. tp框架中的一些疑点知识-2

    tp中有三种常量: 预定义常量, 这个设置后不会随环境的改变而改变的,比如'URL_MODEL' => 1 注意是 model, 不是 url_mode 路径常量, 也不会随环境的改变而改变的, ...

随机推荐

  1. pkgadd 软件安装二种方法

    安装文件 pkgadd -d /soft/top-3.6.1-sol10-x86-local 安装目录文件: pkgadd -d ./ SUNWi1cs SUNWi15cs

  2. mysql 审计插件编写

    http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1864367&page=1#pid13527550 http://blog ...

  3. C# 标签(条码)的打印与设计(二)

    上一篇说到条码的打印,主要是通过读取模板定义文件(XML文件),然后结合从数据库中读取的动态数据结合而产生条码.下面主要说一下如何设计这个条码模板.设计过程也很简单,只需要简单的拖拉即可.然后点击小箭 ...

  4. [Asp.net MVC]Bundle合并,压缩js、css文件

    摘要 在web优化中有一种手段,压缩js,css文件,减少文件大小,合并js,css文件减少请求次数.asp.net mvc中为我们提供一种使用c#代码压缩合并js和css这类静态文件的方法. 一个例 ...

  5. python文本 去掉字符串前后空格

    python文本 去掉字符串前后空格 场景: 去掉字符串前后空格 可以使用strip,lstrip,rstrip方法 >>> a="abc".center (30 ...

  6. Windows Server 2003 IIS设置完全篇

    一.启用Asp支持Windows Server 2003 默认安装,是不安装 IIS 6 的,需要另外安装.安装完 IIS 6,还需要单独开启对于 ASP 的支持. 第一步,启用Asp,进入:控制面板 ...

  7. word排版汇总

    1.iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf 的文档,而且可以将XML.Html文件转化为PDF ...

  8. 我所遭遇过的游戏中间件---SpeedTree

    我所遭遇过的游戏中间件---SpeedTree SpeedTree是一个专门用于渲染植被的中间件,并提供了一套完善的植物编辑工具.在它官方提供的DEMO中,你会看到高度逼真的树木和植物,在风的影响下树 ...

  9. 屏保:画线圈LineFlower

    LineFlowerSP 小时候玩过一种画线圈的玩具,将一个圆形齿轮在一个大圈里转,会画出各种图形来.这个程序就是模仿它做的.算法原理:将一个圆围绕着另一个大圆公转,并且它还做自转运动.那么圆内一点的 ...

  10. Informatica 常用组件Lookup之二 已连接和未连接的查找

    可以配置一个已连接的查找转换,以从映射管道中直接接收输入:您也可以配置一个未连接的查找转换,以从其它转换的表达式结果中接收输入. 已连接的查找 未连接的查找 直接从管道接收输入值. 从其它转换的 :L ...