Thinkphp二级域名并隐藏MODULE的名称
[键入文档副标题]
[配置启用域名]
修改配置文件config.php,3.2的版本增加了全局的配置,增加内容:
'APP_SUB_DOMAIN_DEPLOY' => 1, // 开启子域名或者IP配置 'APP_SUB_DOMAIN_RULES' => array( 'blog.75271.com' => 'Blog', // test.75271.com域名指向Blog模块 ) //如果您的域名类似.com.cn这样的还需增加下面代码 //'APP_DOMAIN_SUFFIX'=>'com.cn'
[隐藏Module模块]
看到url里包含了Moule,类似Blog , Users ,Home ,Admin这样的很不爽,在生成时直接去掉,先在配置config.php文件里增加:
// 允许访问的模块列表 'MODULE_ALLOW_LIST' => array('Blog','Users' ,'Home','Admin'), 'DEFAULT_MODULE' => 'Home', // 默认模块
在修改入口文件index.php,增加代码:
define('BIND_MODULE','Home');//默认thinkphp 3.2以上才可以
[处理除默认Module其他不能访问问题]
1/ 可以通过.htaccess文件增加,不同域名访问不同的入口文件,给不同的域名增加不同默认绑定。
2/ 通过一个入口文件处理其它域名的绑定处理,在入口文件index.php增加代码:
if($_SERVER['HTTP_HOST']=='blog.75271.com'){ define('BIND_MODULE','Blog'); }else{ define('BIND_MODULE','Home'); }
[思考]
发现thinkphp的路由功能还是一般的,如果要是用Laravel 处理起来的话是很轻松的,期待后面的版本会有改进。