文档章节

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

carolcoral
 carolcoral
发布于 2017/09/06 15:37
字数 1041
阅读 14
收藏 0

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

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=*');
            */
             )
        域名部署的定义格式2和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模块
            ),

© 著作权归作者所有

上一篇: 任务计划列表
下一篇: PHP写留言板
carolcoral
粉丝 0
博文 11
码字总数 6173
作品 0
成都
程序员
私信 提问
5分钟快速安装thinkphp5.1

简介 ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色...

游客icvsasieod266
07/06
0
0
两个PHP项目整合到一个网站 如何共用一个会话

有两个网站,一个是用Thinkphp开发的,数据库是mysql 另外一个是用Smarty,数据库是mysql, 现在需要做到: 两个网站的用户数据同步,即在任何一个网站上注册,在另外一个网站上都可以登录 两个网站...

山东小常
2013/04/15
2.8K
7
ThinkPHP仿58同城一站多城市路由配置技巧及二级域名部署技巧

ThinkPHP在PATHINFO的URL模式下,URL的格式类似于http://www.domain.com/appName/module/action 即:http://www.domain.com/分组名/模块名/方法名 或者:http://www.domain.com/模块名/方法名...

喵王不瞌睡
2015/03/06
2.6K
2
Thinkphp框架搭建手机网站视频教程

我赢职场全球经典Thinkphp框架搭建网站功能,用户登录后,如何在前台显示相应的用户名 连接地址:http://dwz.cn/z9NBy [摘要] 代码中的函数 ismobile来源于网上,写得挺好的。入口文件通过判...

马洪伟
2014/12/25
339
0
零云(CoreThink&OpenCMF)技术分享之:基于ThinkPHP的分布式部署步骤

零云(CoreThink&OpenCMF)是一套国内领先的互联网产品积木式开发解决方案,追求简单、高效、卓越。可轻松实现支持多终端的互联网产品(网站、微信小程序、微信应用号、APP)快速搭建、部署、上...

CoreThink
2016/11/24
468
0

没有更多内容

加载失败,请刷新页面

加载更多

代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
8
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
12
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
16
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部