thinkphp开启域名部署/子域名部署/泛域名部署/IP访问部署
2017-09-06 00:00
274 查看
摘要: 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模块
),
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模块
),
相关文章推荐
- thinkphp自动跳到首页 --开启域名部署/子域名部署/泛域名部署/IP访问部署
- tomcat部署web应用,并使用域名(IP)直接访问
- houxiurong.com 关于Tomcat7部署 一台机器部署两个项目,一个用域名访问,一个用IP访问
- Discuz!教程之论坛开启了版块子域名绑定,如果避免多域名访问帖子和重复收录
- Nginx配置实现同一域名下 同一ip 通过子域名访问不同端口
- Apache + Tomcat +mod_jk 限制域名、IP访问
- apache修改空主机头,禁止IP访问及未绑定域名访问
- linux 如何禁止通过IP访问网站,只让用域名访问网站
- 网站部署和域名解析域名直接访问开发的网页
- Jetty 设置访问ip,虚拟域名(virtualHosts)
- 域名和ip不能访问的原因
- sharepoint 2007 将域名指定特定的一台moss ip后,访问报错
- nginx泛域名解析并禁止IP访问,禁止多余www.泛域名访问
- linux 下无法访问域名 无法访问域名,可以访问IP
- 域名与IP对应,解决只能IP访问不能域名访问的问题
- tomcat iis下公用80端口 只需输入域名即可访问不同项目;适用于iis服务器下部署多个项目
- Apahce防止用户IP访问,只允许进行域名访问,IP访问报403错误
- nginx下只能通过域名,禁止使用ip访问
- Nginx禁止通过IP,未绑定域名访问服务器
- 修改ThinkPHP使其支持多级域名部署