赞
踩
本片博客的内容和thinkphp5.0完全开发手册中的差不多一样,所以内容我照搬,不过这里主要侧重如何配置实现。
ThinkPHP支持完整域名、子域名和IP部署的路由和绑定功能,同时还可以起到简化URL的作用。 要启用域名部署路由功能,首先需要开启
‘url_domain_deploy’ => true
定义域名部署规则支持两种方式:动态注册和配置定义。
可以在应用的公共文件或者配置文件中动态注册域名部署规则,例如:
blog子域名绑定到blog模块
Route::domain(‘blog’,‘blog’); 例1
完整域名绑定到admin模块
Route::domain(‘admin.thinkphp.cn’,‘admin’); 例2
IP绑定到admin模块
Route::domain(‘114.23.4.5’,‘admin’);例3
blog子域名绑定后,URL访问规则变成:
支持绑定的时候添加默认参数,例如:
blog子域名绑定到blog模块 Route::domain('blog','blog?var=thinkphp'); 例4
除了绑定到模块之外,还隐式传入了一个 $_GET[‘var’] = ‘thinkphp’ 变量。 支持直接绑定到控制器,例如:
blog子域名绑定到index模块的blog控制器 Route::domain('blog','index/blog');例5
URL访问地址变化为:
如果你的域名后缀比较特殊,例如是 com.cn 或者 net.cn 之类的域名,需要配置:
可以支持泛域名部署规则,例如:
绑定泛二级域名域名到book模块
Route::domain('*','book?name=*') 例6
下面的URL访问都会直接访问book模块
http://hello.thinkphp.cn
http://quickstart.thinkphp.cn
//注意二级域名你要提前解析
并且可以直接通过$_GET[‘name’]变量 获取当前的泛域名。
支持三级泛域名部署,例如:
的同时,除了会访问user模块之外,还会默认传入 $_GET[‘name’] = ‘hello’ 在配置传入参数的时候,如果需要使用当前的泛域名作为参数,可以直接设置为“*”即可。
除了动态注册之外,还支持直接在路由配置文件中定义域名部署规则,例如:
return [ 例7
'__domain__'=>[
'blog' => 'blog',
// 泛域名规则建议在最后定义
'*.user' => 'user',
'*' => 'book',
],
// 下面是路由规则定义 ]
例1:Route::domain(‘blog’,‘blog’);
这里我以windows下面的虚拟站点为例。
第一步:把配置项打开
第二步:在route下面加入域名路由
这里时候,如果你访问了。你会得到没有找到ip地址这样的错误,这是因为你没有解析你的ip地址。
第三步:找到windows下面的hosts文件,并作出如下修改,加上二级域名
这样就可以了
例2:Route::domain(‘admin.thinkphp.cn’,‘admin’);
其实后两个和第一个差不多,这里就稍微说一下
只需要修改route.php配置就行,这里我为了效果更加明显修改了admin/Index里面的内容
效果图
例3:Route::domain(‘114.23.4.5’,‘admin’);
只需要修改route.php配置就行,这里我为了效果更加明显修改了admin/Index里面的内容
这是需要注意,访问的时候应该是127.0.0.1/控制器/方法,而不是域名/控制器/方法
例4
按照例1的配置,然后你只需要修改route.php配置和admin/index内容
效果
例5:
按照例1的配置,然后你只需要修改route.php配置和admin/index内容
例6:Route::domain(’’,'book?name=’)
按照例1的配置,然后你只需要修改route.php配置和admin/index内容
效果
例7
按照例1的配置,然后你只需要修改route.php配置和admin/index内容
效果图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。