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

开启域名部署

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

  1. 'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名或者IP配置
  2. 'APP_SUB_DOMAIN_RULES' => array(
  3. /* 域名部署配置
  4. *格式1: '子域名或泛域名或IP'=> '模块名[/控制器名]';
  5. *格式2: '子域名或泛域名或IP'=> array('模块名[/控制器名]','var1=a&var2=b&var3=*');
  6. */
  7. )

域名部署的定义格式2和1的区别在于格式2可以隐式传入额外的参数。

域名和IP的解析涉及到DNS解析以及Apache等服务器的配置,这块不再详细描述,请参考相关百度资料。

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

完整域名部署

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

  1. 'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名配置
  2. 'APP_SUB_DOMAIN_RULES' => array(
  3. 'admin.domain1.com' => 'Admin', // admin.domain1.com域名指向Admin模块
  4. 'test.domain2.com' => 'Test', // test.domain2.com域名指向Test模块
  5. ),

在域名部署之前的访问地址: 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

子域名部署

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

  1. 'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名配置
  2. 'APP_SUB_DOMAIN_RULES' => array(
  3. 'admin' => 'Admin', // admin子域名指向Admin模块
  4. 'test' => 'Test', // test子域名指向Test模块
  5. ),

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

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

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

  1. 'APP_DOMAIN_SUFFIX'=>'com.cn'

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

传入参数

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

  1. 'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名配置
  2. 'APP_SUB_DOMAIN_RULES' => array(
  3. 'admin' => array('Admin','var1=1&var2=2'), // admin子域名指向Admin模块
  4. ),

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

控制器绑定

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

  1. 'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名配置
  2. 'APP_SUB_DOMAIN_RULES' => array(
  3. 'test.admin' => 'Admin/Test', // test.admin子域名指向Admin模块的Test控制器
  4. ),

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

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

泛域名部署

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

  1. 'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名配置
  2. 'APP_SUB_DOMAIN_RULES' => array(
  3. 'admin' => 'Admin', // admin域名指向Admin模块
  4. '*' => array('Test','var1=1&var2=*'), // 二级泛域名指向Test模块
  5. '*.user' => array('User','status=1&name=*'), // 三级泛域名指向User模块
  6. ),
复制代码

 

配置后,我们可以访问:

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

访问Test模块 并隐式传入$_GET['var1'] = 1 和 $_GET['var2'] = 'hello' 两个参数。大理石平台规格

访问如下地址:

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

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

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

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

IP访问部署

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

  1. 'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名配置
  2. 'APP_SUB_DOMAIN_RULES' => array(
  3. '22.56.78.9' => 'Admin', // 22.56.78.9指向Admin模块
  4. ),
 

thinkphp 域名部署的更多相关文章

  1. ThinkPHP框架部署

    ThinkPHP框架部署 1.下载ThinkPHP框架 下载地址:http://www.thinkphp.cn/ ThinkPHP官方网站 下载ThinkPHP3.2.3完整版,下载后如下图所示: A ...

  2. Thinkphp框架部署步骤

    Thinkphp框架部署步骤 thinkphp框架部署起来简单,但是由于步骤较多也容易遗忘: 这是安装了集成环境后的一个www根目录结构: 然后需要在这个目录下面创建一个文件夹做项目:thinkphp ...

  3. thinkphp项目部署在phpstudy里的nginx上

    朋友的一个thinkphp做的项目,让我帮他部署一下的,LINUX服务器,用宝塔. 第一台服务器,装上宝塔,宝塔里装NGINX,PHP5.6,再建立网站,绑定域名,访问成功,一切正常! 昨天试着给另一 ...

  4. Linux的DNS实现负载均衡及泛域名部署

    DNS负载均衡技术的实现原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到 ...

  5. thinkphp 模块部署

    3.2对模块的访问是自动判断的,所以通常情况下无需配置模块列表即可访问,在部署模块的时候,默认情况下都是基于类似于子目录的URL方式来访问模块的,例如: http://serverName/Home/ ...

  6. tomcat 配置域名部署war 项目

    第一步把打包好的war包 放到 tomcat目录下的webapps 下 截图: 第二步:找到tomcat目录下的server.xml配置文件 server.xml在conf文件夹下面 编辑server ...

  7. thinkphp框架部署出现404解决

    1:虚拟机配置文件修改: location / { index index.php index.html; if (!-e $request_filename) { rewrite ^/index.p ...

  8. THinkPHP 5.0 域名路由

    ThinkPHP支持完整域名.子域名和IP部署的路由和绑定功能 要启用域名部署路由功能,首先需要开启: 'url_domain_deploy' => true 定义域名部署规则支持两种方式:动态 ...

  9. Nginx高级配置,同1台机器部署多个tomcat、配置多个域名,每个域名指向某一个tomcat下的项目,共用Nginx80端口访问;

    需求说明: 只有一台服务器和一个公网IP,多个项目部署在这台机器上面,且每个项目使用一个单独的域名访问,域名访问时都通过Nginx的80端口访问.(如下图所示) 配置过程: 一.tomcat的serv ...

随机推荐

  1. 使用Flask-Mail发送邮件

    简介 在WEB开发时,我们常常会使用到发送邮件的功能,注册时或者更换密码时,需要验证邮箱,在flask的扩展中有Flask-mai来帮助完成这一功能 配置 flask-mail发送邮件需要你提供你的邮 ...

  2. 在AndroidStudio2.3.2下JNI开发的详细步骤(转)

    转自:http://blog.csdn.net/luhaoying1111/article/details/72468867 安装NDK 在工具栏点击File->Settings->App ...

  3. 【TJOI2018】教科书般的亵渎

    题面 题目描述 小豆喜欢玩游戏,现在他在玩一个游戏遇到这样的场面,每个怪的血量为\(a_i\),且每个怪物血量均不相同,小豆手里有无限张"亵渎".亵渎的效果是对所有的怪造成11点伤 ...

  4. 详解 MySQL int 类型的长度值问题

    以下是每个整数类型的存储和范围 (来自 mysql 手册)

  5. 二进制搭建一个完整的K8S集群部署文档

    服务器规划 角色 IP 组件 k8s-master1 192.168.31.63 kube-apiserver kube-controller-manager kube-scheduler etcd ...

  6. vue 组件的简单使用01

    // 组件 自定义全局组件 Vue.component('mycom', { template: '<div v-on:click="count++">自定义组件 +{ ...

  7. Rubber Ducky简介

    USB Rubber Ducky是一款模仿人工键盘输入的设备,外形和U盘一样,模拟键盘输入速度可达到1000个字符每分钟,并且适合任何操作系统,包括安卓等移动OS,它使用的是它特定的脚本语言,用记事本 ...

  8. 51nod-1204 并查集

    你的朋友写下一串包含1和0的串让你猜,你可以从中选择一个连续的子串(例如其中的第3到第5个数字)问他,该子串中包含了奇数个还是偶数个1,他会回答你的问题,然后你可以继续提问......你怀疑朋友的答案 ...

  9. MySql在建立索引优化时需要注意的问题

    MySql在建立索引优化时需要注意的问题 设计好MySql的索引可以让你的数据库飞起来,大大的提高数据库效率.设计MySql索引的时候有一下几点注意: 1,创建索引 对于查询占主要的应用来说,索引显得 ...

  10. new delete

    malloc/free是标准的库函数,而new/delete是操作符 匹配使用原则:malloc(calloc/realloc)和free 以及new/new[] 和delete/delete[]; ...