- 浏览: 37636 次
- 性别:
- 来自: 北京
文章分类
最新评论
thinkphp二级域名配置
ThinkPHP支持分组的二级域名部署,该功能可以使项目中的多个分组呈现为二级域名的形式,例如经过配置二级域名部署,可以把:
http://domain.com/index.php/Admin/或者http://domain.com/Admin/
变为 http://admin.domain.com/ 访问方式。
先配置域名, 以 apache为例 , 配置如下: #主域名
-
DocumentRootD:\htdocs\www ServerNamedomain.com
-
DocumentRootD:\htdocs\www ServerNameadmin.domain.com
-
127.0.0.1domain.com 127.0.0.1admin.domain.com
-
'APP_GROUP_LIST'=>'Home,Test,Admin','DEFAULT_GROUP'=>'Home','APP_SUB_DOMAIN_DEPLOY'=>1,//开启子域名配置 /*子域名配置 *格式如:'子域名'=>array('分组名/[模块名]','var1=a&var2=b'); */ 'APP_SUB_DOMAIN_RULES'=>array( 'admin'=>array('Admin/'),//admin域名指向Admin分组 'test'=>array('Test/'),//test域名指向Test分组 ),
首先是在config.php文件中开启二级域名配置
'APP_SUB_DOMAIN_DEPLOY'=>true
然后配置二级域名规则如下:
'APP_SUB_DOMAIN_RULES'=>array('admin'=>array('admin'),//二级域名'data'=>array('data'),//二级域名'www'=>array('home'),//前台域名'html'=>array('html'),//静态页面'data'=>array('data'),//静态页面'*'=>array('te','DDD=*'),//二级泛域名'top.admin'=>array('admin/admin','var=1'),//三级域名'*.blog'=>array('blog','ABD=445&USER=*'),//三级泛域名),
接下来进行host配置,在本机测试的时候需要自己配置如:127.0.0.1ddd.bbs.com127.0.0.1te.bbs.com127.0.0.1data.bbs.com127.0.0.1test.blog.bbs.com127.0.0.1tt.blog.bbs.com
最后配置apache
vhost配置我找到了一种最简便的方法如:<VirtualHost*:80>DocumentRoot"E:\wamp\www\bbbb"ServerNamebbs.comServerAlias*.bbs.com#开通泛解析</VirtualHost>
项目配置请看项目里的config.php
注:vhost配置中的ServerAlias是域名别名的意思,用*号表示匹配所有的子域名到本域名下
后面的就交给thinkphp去解析了
在官方手册去查了下,没有具体说明怎么支持二级域名的方法,最后找到一个解决方案(修改thinkphp的parsePathInfo函数让其支持二级域名)。
# 修改的路径是:# ThinkPHP\Lib\Think\Util\Dispatcher.class.phpprivatestaticfunctionparsePathInfo(){$pathInfo=array();if(C('URL_PATHINFO_MODEL')==2){$paths=explode(C('URL_PATHINFO_DEPR'),trim($_SERVER['PATH_INFO'],'/'));<wbr>$APP_LEVEL_DOMAINS<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,0)"><strong>false</strong></span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span>$domain<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span>array_shift<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>explode<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'.'</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">,</span>$_SERVER<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'HTTP_HOST'</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span><wbr><span style="word-wrap:normal; word-break:normal; color:rgb(177,177,0)">if</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>in_array<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$domain<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">,</span>C<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'APP_LEVEL_DOMAINS'</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">,</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,0)"><strong>true</strong></span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">{</span>$APP_LEVEL_DOMAINS<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,0)"><strong>true</strong></span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">}</span><wbr><span style="word-wrap:normal; word-break:normal; color:rgb(177,177,0)">if</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>C<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'APP_LEVEL_DOMAIN_DEPLOY_ON'</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">&&</span>$APP_LEVEL_DOMAINS<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">{</span><span style="word-wrap:normal; word-break:normal; color:rgb(177,177,0)">if</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>isset<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$paths<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,221)">0</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">&&</span>strtolower<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$paths<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,221)">0</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">==</span>strtolower<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$domain<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">{</span>array_shift<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$paths<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">}</span>$pathInfo<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span>C<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'VAR_MODULE'</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span>ucfirst<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>array_shift<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>explode<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'.'</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">,</span>$_SERVER<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'HTTP_HOST'</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span>$pathInfo<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span>C<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'VAR_ACTION'</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span>array_shift<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$paths<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">}</span><span style="word-wrap:normal; word-break:normal; color:rgb(177,177,0)">else</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">{</span>$groupApp<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span>C<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'APP_GROUP_LIST'</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span><span style="word-wrap:normal; word-break:normal; color:rgb(177,177,0)">if</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$groupApp<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">{</span>$arr<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span>array_map<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'strtolower'</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">,</span>explode<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">','</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">,</span>$groupApp<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span>$pathInfo<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span>C<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'VAR_GROUP'</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span>in_array<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>strtolower<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$paths<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,221)">0</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">,</span>$arr<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">?</span>array_shift<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$paths<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">:</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">''</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">}</span>$pathInfo<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span>C<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'VAR_MODULE'</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span>array_shift<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$paths<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span>$pathInfo<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span>C<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'VAR_ACTION'</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span>array_shift<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$paths<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">}</span><span style="word-wrap:normal; word-break:normal; color:rgb(177,177,0)">for</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$i<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,221)">0</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">,</span>$cnt<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span>count<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$paths<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span>$i<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)"><</span>$cnt<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span>$i<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">++</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">{</span><span style="word-wrap:normal; word-break:normal; color:rgb(177,177,0)">if</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>isset<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$paths<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span>$i<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">+</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,221)">1</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">{</span>$pathInfo<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span>$paths<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span>$i<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(153,51,51)">string</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span>$paths<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">++</span>$i<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">}</span>elseif<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span>$i<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">==</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,221)">0</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">{</span>$pathInfo<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span>$pathInfo<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span>C<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'VAR_ACTION'</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(153,51,51)">string</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span>$paths<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span>$i<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">}</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">}</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">}</span><span style="word-wrap:normal; word-break:normal; color:rgb(177,177,0)">else</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">{</span>$res<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">=</span>preg_replace<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'@(\w+)'</span>.<span style="word-wrap:normal; word-break:normal; color:rgb(32,32,32)">C</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">(</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'URL_PATHINFO_DEPR'</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span>.<span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'([^,\/]+)@e'</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">,</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'$pathInfo[<span style="word-wrap:normal; word-break:normal; color:rgb(0,0,153)"><strong>\'</strong></span>\<span style="word-wrap:normal; word-break:normal; color:rgb(0,102,153)"><strong>\1</strong></span><span style="word-wrap:normal; word-break:normal; color:rgb(0,0,153)"><strong>\'</strong></span>]="\<span style="word-wrap:normal; word-break:normal; color:rgb(0,102,153)"><strong>\2</strong></span>";'</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">,</span>$_SERVER<span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">[</span><span style="word-wrap:normal; word-break:normal; color:rgb(255,0,0)">'PATH_INFO'</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">]</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">)</span><span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">}</span><span style="word-wrap:normal; word-break:normal; color:rgb(177,177,0)">return</span>$pathInfo<span style="word-wrap:normal; word-break:normal; color:rgb(51,153,51)">;</span><span style="word-wrap:normal; word-break:normal; color:rgb(0,153,0)">}</span></wbr></wbr></wbr>
用上面这个函数替换后就能支持二级域名了,不过还有事情要做。在项目的配置文件(config.php)里面加上二级域名支持。
returnarray(#'配置项'=>'配置值''DEBUG_MODE'=>true,'URL_MODEL'=>2,'APP_LEVEL_DOMAIN_DEPLOY_ON'=>true,#标识打开二级域名支持'APP_LEVEL_DOMAINS'=>array('sites','seo'),#例:如果是sites.ys250.com 那么将采用2级别域名的方式#'URL_HTML_SUFFIX'=>'.html',#'URL_ROUTER_ON' => true
结果如:
http://www.ys250.com/sites/ip (old)
http://sites.ys250.com/ip (new)
http://www.ys250.com/seo (old)
http://seo.ys250.com (new)
http://ips.ys250.com/ 让采用老的方式,因为ips没有开通二级支持支持,因此大家要开通自己的二级域名请设置APP_LEVEL_DOMAINS这个数组。
暂时只支持二级域名的部署,更深层级的还在想使用GROUP分组形式好还是使用Router来进行检测。不喜欢废话,直接切入主题:
修改ThinkPHP/Lib/Think/Util/Dispatcher.class.php
找到parsePathInfo方法,修改为:
[php]view plaincopy- privatestaticfunctionparsePathInfo()
- {
- $pathInfo=array();
- if(C('URL_PATHINFO_MODEL')==2){
- $paths=explode(C('URL_PATHINFO_DEPR'),trim($_SERVER['PATH_INFO'],'/'));
- if(C('APP_LEVEL_DOMAIN_DEPLOY_ON')){
- $pathInfo[C('VAR_MODULE')]=ucfirst(array_shift(explode('.',$_SERVER['HTTP_HOST'])));
- $pathInfo[C('VAR_ACTION')]=array_shift($paths);
- }else{
- $groupApp=C('APP_GROUP_LIST');
- if($groupApp){
- $arr=array_map('strtolower',explode(',',$groupApp));
- $pathInfo[C('VAR_GROUP')]=in_array(strtolower($paths[0]),$arr)?array_shift($paths):'';
- }
- $pathInfo[C('VAR_MODULE')]=array_shift($paths);
- $pathInfo[C('VAR_ACTION')]=array_shift($paths);
- }
- for($i=0,$cnt=count($paths);$i<$cnt;$i++){
- if(isset($paths[$i+1])){
- $pathInfo[$paths[$i]]=(string)$paths[++$i];
- }elseif($i==0){
- $pathInfo[$pathInfo[C('VAR_ACTION')]]=(string)$paths[$i];
- }
- }
- }else{
- $res=preg_replace('@(/w+)'.C('URL_PATHINFO_DEPR').'([^,//]+)@e','$pathInfo[/'//1/']="//2";',$_SERVER['PATH_INFO']);
- }
- return$pathInfo;
- }
在App/Conf/config.php中添加配置:
'APP_LEVEL_DOMAIN_DEPLOY_ON' => true
即可开启二级域名部署访问:level.domain.com/index.html
Module为LevelAction
Action为index访问:payment.domain.com/gateway.html
Module为PaymentAction
Action为gateway首先是在config.php文件中开启二级域名配置
'APP_SUB_DOMAIN_DEPLOY' => true
<wbr></wbr>
然后配置二级域名规则如下:
<wbr><wbr><wbr>'APP_SUB_DOMAIN_RULES'<wbr>=> array(<br><wbr><wbr><wbr><wbr>'admin'<wbr><wbr><wbr><wbr>=> array('admin'), // 二级域名<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>'data'<wbr><wbr><wbr><wbr>=> array('data'), // 二级域名<br><wbr><wbr><wbr><wbr>'www'<wbr><wbr><wbr><wbr><wbr><wbr>=> array('home'),//前台域名<br><wbr><wbr><wbr><wbr>'html'<wbr><wbr>=> array('html'),//静态页面<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>'data'<wbr><wbr>=> array('data'),//静态页面<br><wbr><wbr><wbr><wbr>'*'<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>=> array('te','DDD=*'), // 二级泛域名<br><wbr><wbr><wbr><wbr>'top.admin' => array('admin/admin','var=1'), // 三级域名<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>'*.blog'<wbr><wbr><wbr>=> array('blog','ABD=445&USER=*'), // 三级泛域名<br><wbr><wbr><wbr>),</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr></wbr>
接下来进行host配置,在本机测试的时候需要自己配置
如:
127.0.0.1 ddd.bbs.com
127.0.0.1 te.bbs.com
127.0.0.1 data.bbs.com
127.0.0.1 test.blog.bbs.com
127.0.0.1 tt.blog.bbs.com<wbr></wbr>
最后配置apache
vhost配置我找到了一种最简便的方法
如:
<VirtualHost *:80>
<wbr><wbr><wbr>DocumentRoot "E:\wamp\www\bbbb"<br><wbr><wbr><wbr>ServerName bbs.com<br><wbr><wbr><wbr>ServerAlias *.bbs.com # 开通泛解析<br> </VirtualHost></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>项目配置请看项目里的config.php
<wbr></wbr>
注:vhost配置中的ServerAlias是域名别名的意思,用*号表示匹配所有的子域名到本域名下
后面的就交给thinkphp去解析了!
相关推荐
ThinkPHP2.1.0 二级域名布署示例使用说明. ThinkPHP2.1.0 二级域名布署示例使用说明. ThinkPHP2.1.0 二级域名布署示例使用说明. ThinkPHP2.1.0 二级域名布署示例使用说明.
快乐二级域名分发-快乐二级域名分发源码 主要是二级域名分发网站源码,不懂的不要下载了。 本套源码可设置收费使用,有充值接口,域名接口配置自己研究吧。
本例主要实现在CI框架中像ThinkPHP一样的二级域名解析方式 1. ci_url_rewirte.php 为实现的代码 可将其插入到system/URI.php 即框架URI类的相应地方 2. URI.php 为我实验版本(Version 1.0)的URI类,其他版本应用...
宏昌家族二级分发域名系统是一个基于thinkphp3.2.2框架和DNSPod的API完成的一个程序,这个程序可以使你的顶级域名的二级域名分发给其他用户,顶级域名价值得到充分的利用 宏昌家族二级分发域名系统使用方法: 1.把...
快乐二级域名分发系统kldns基于ThinkPHP5.0框架完成开发,支持的域名解析平台有dnspod、cloudxns、aliyun、dnscom、dnsla,多用户、多域名、多平台同时存在,界面简单、舒适,操作简单。快乐二级域名分发系统 2.2.0 ...
快乐二级域名分发系统重置版v1.7源码,简单快捷、功能强大的控制面板。主打稳定长久稳定客户,控制面板无任何广告,让我们伴您的网站成长 ! 更新日志: 1.更新fh系统(自带接口) 2.新增模板 3.修复原版美化模板ip...
快乐二级域名分发系统重置版v1.7源码,简单快捷、功能强大的控制面板。主打稳定长久稳定客户,控制面板无任何广告,让我们伴您的网站成长 ! 更新日志: 1.更新fh系统(自带接口) 2.新增模板 3.修复原版美化模板ip...
快乐是福二级域名分发系统是以php+MySQL进行开发的二级域名分发系统源码。 此系统有哪些特点 目前支持的域名解析平台有 1.dnspod 2.cloudxns 3.aliyun 多用户、多域名、多平台同时存在 界面简单、舒适,操作简单 ...
主要介绍了php中cookie实现二级域名可访问操作的方法,对比了常用的setcookie函数用法,并给出了一个设置cookie的类文件来实现这一功能,是非常实用的技巧,需要的朋友可以参考下
还可以支持对分组的二级域名部署支持。 模板引擎:系统内建了一款卓越的基于XML的编译型模板引擎,支持两种类型的 模板标签,融合了Smarty和JSP标签库的思想,并内置布局模板功能和标签库扩展 支持。通过驱动还可以...
搭建教程: 1.上传源码解压 2.设置PHP7.1+ 3.设置伪静态thinkphp 4.访问域名安装 5.配置/epay/config.php
先准备两个域名,二级域名也行,例如:前台 tool.baidu.com 后台 admin.baidu.com 无需数据库安装环境 Nginx+php7.4 下载源码解压至你的前台域名根目录下 宝塔面板后台设置域名运行目录设置 /public 宝塔面板后台...
贝云cms(bycms) 是一套基于thinkphp5.0.11简单,易用的内容管理系统包含文章,图片,下载,视频,问答模型,旨在帮助开发者节约web应用后台开发时间和...xxx.com/install.php或访问域名进入安装向导,不支持二级目录 后台
1、先准备两个域名,一个做前台用一个做后台用的,二级域名也可以,例如:前台用 tool.baidu.com 后台用 admin.baidu.com 2、无需数据库安装环境 Nginx+php7.4 3、下载源码解压至网站根目录下,设置域名运行目录...
1、先准备两个域名,一个做前台用一个做后台用的,二级域名也可以,例如:前台用 tool.baidu.com 后台用 admin.baidu.com 2、无需数据库安装环境 Nginx+php7.4 3、下载源码解压至网站根目录下,设置域名运行...
1. 先准备两个域名,一个做前台用一个做后台用的,二级域名也可以,例如:前台用 tool.baidu.com 后台用 admin.baidu.com 2. 无需数据库安装环境 Nginx+php7.4 3. 下载源码解压至网站根目录下 4. 宝塔面板...
1、先准备两个域名,一个做前台用一个做后台用的,二级域名也可以,例如:前台用 tool.baidu.com 后台用 admin.baidu.com 2、无需数据库安装环境 Nginx+php7.4 3、下载源码解压至网站根目录下,设置域名运行...
1. 先准备两个域名,一个做前台用一个做后台用的,二级域名也可以,例如:前台用 tool.baidu.com 后台用 admin.baidu.com 2. 无需数据库安装环境 Nginx+php7.4 3. 下载源码解压至网站根目录下 4. 宝塔面板后台...
1. 先准备两个域名,一个做前台用一个做后台用的,二级域名也可以,例如:前台用 tool.baidu.com 后台用 admin.baidu.com 2. 无需数据库安装环境 Nginx+php7.4 3. 下载源码解压至网站根目录下 4. 宝塔面板后台...
1. 先准备两个域名,一个做前台用一个做后台用的,二级域名也可以,例如:前台用 tool.baidu.com 后台用 admin.baidu.com 2. 无需数据库安装环境 Nginx+php7.4 3. 下载源码解压至网站根目录下 4. 宝塔面板后台...