'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. 【scrapy】使用方法概要(四)(转)

    [请初学者作为参考,不建议高手看这个浪费时间] 上一篇文章,我们抓取到了一大批代理ip,本篇文章介绍如何实现downloaderMiddleware,达到随即使用代理ip对目标网站进行抓取的. 抓取的 ...

  2. HDU 4708 Rotation Lock Puzzle (简单题)

    Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  3. ool _WebTryThreadLock(bool),

    一般的问题是这样的 “bool _WebTryThreadLock(bool), 0xxxxxx: Tried to obtain the web lock from a thread other t ...

  4. UML九种图 之 用例图和类图

    前言     近期写UML文档,看视频的时候感觉掌握的还能够,当真正写文档的时候才发现不是一件easy的事.写文档自己又翻开自己的笔记看了一遍又一遍. 以下就给大家介绍一下我画的几张图: 用例图   ...

  5. java环境配置错误集锦

    eclipse生成的文件目录 D:\eeworkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps 1.java. ...

  6. Objective-C:保留计数器思想的详解(对象的保留和所有权的释放)

    对象的保留和所有权的释放: int main(int agrs,char *argv[]) { @autoreleasepool{ Person *person = [[Person alloc]in ...

  7. C语言:字符串输出流输出文件中的数据。

    #include<stdio.h> #include<string.h> int main() { //定义文件指针 FILE *f = NULL; //打开文件 f = fo ...

  8. evaluate-division

    https://leetcode.com/problems/evaluate-division/ public class Solution { private Map mp; private cla ...

  9. Minimum Depth of Binary Tree leetcode java

    题目: Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the ...

  10. Observer 观察者模式 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...