设置2级域名咯
本帖最后由 Martix 于 2016-11-7 15:57 编辑好久没来了,论坛突然换了界面 就是不一样哈,高大上了许多.
在网上看到的帖子 自己也没实验 搬过来存个档吧
转发:http://blog.hs5233.com/blog/codeigniter_group.htmlcodeigniter 3.1设置子域名解析首先在application\config目录下增加一个domain.php文件,然后写入:
/*domain:允许访问的子域名
default_domain:www前缀默认进入的分组
*/
//默认分组
$default_domain = array('blog');
//全部分组
$domain = array('blog','test','wechat');
查看system\core\CodeIgniter.php:/* * ---------------- *Instantiate the routing class and set the routing * ----------------- */
$RTR =& load_class('Router', 'core', isset($routing) ? $routing : NULL);
可知codeigniter控制路由的程序是同目录下的Router.php;打开Router.php,添加一个成员属性和一个成员方法,比如: /** * 访问的域名前缀 * * @var string
*/
public $domain;
// --------------------------------------------------------------------
/** * 设置domain *
* @returnvoid
*/
protected function set_domain() {
$reqDomian = explode('.',$_SERVER['SERVER_NAME']);
require_once(APPPATH.'config/domain.php');
$this->domain = $reqDomian == 'www' ? $default_domain : $reqDomian;
if(!in_array($this->domain,$domain)){
show_404($RTR->directory.$class.'/'.$method);
}
}
然后把此文件内所有遍历controllers的路径都增加$this->domain.'/',例如:if ( ! file_exists(APPPATH.'controllers/'.$this->directory.ucfirst($class).'.php'))
改为
if ( ! file_exists(APPPATH.'controllers/'.$this->domain.'/'.$this->directory.ucfirst($class).'.php'))
返回system\core\CodeIgniter.php,把此文件内所有遍历controllers的路径都增加$RTR->domain.'/',例如:APPPATH.'controllers/'.$RTR->directory.$error_class.'.php'
改为
APPPATH.'controllers/'.$RTR->domain.'/'.$RTR->directory.$error_class.'.php'
OK,代码部分修改完毕。具体使用方式:在application\controllers目录下建立分组,比如分index和admin;
application\config\domain.php文件里面的default_domain设置www前缀访问的分组,domain设置全部分组。
//默认分组$default_domain = array('blog'); //全部分组 $domain = array('blog','test','wechat');教程完毕,点击下载源码。
bug:当不带域名前缀访问的时候会显示404页面;解决方案:修改set_domain方法:protected function set_domain() {
$reqDomian = explode('.',$_SERVER['SERVER_NAME']);
if(count($reqDomian)<3)$reqDomian = 'www';
require_once(APPPATH.'config/domain.php');
$this->domain = $reqDomian == 'www' ? $default_domain : $reqDomian;
if(!in_array($this->domain,$domain)){
show_404($RTR->directory.$class.'/'.$method);
}
}
赞!如果能改改代码高亮就好了!哈哈 Hex 发表于 2016-11-7 13:52
赞!如果能改改代码高亮就好了!哈哈
猪大,代码已高亮.确实好看了不少. Martix 发表于 2016-11-7 16:00
猪大,代码已高亮.确实好看了不少.
棒棒哒! Hex 发表于 2016-11-7 13:52
赞!如果能改改代码高亮就好了!哈哈
论坛刚换界面的那几天没适应,我还以为是我网速卡得样式都加载不来了。。。 soho22 发表于 2016-11-7 16:19
论坛刚换界面的那几天没适应,我还以为是我网速卡得样式都加载不来了。。。 ...
哈哈,论坛样式应该还会再调整,现在的样式我还是不太满意,有点太白了,晃眼。 Hex 发表于 2016-11-7 16:20
哈哈,论坛样式应该还会再调整,现在的样式我还是不太满意,有点太白了,晃眼。 ...
可以设置成 自定义的 个人觉得 自定义更爽 上传图片做背景 更完美了. Martix 发表于 2016-11-8 11:37
可以设置成 自定义的 个人觉得 自定义更爽 上传图片做背景 更完美了.
哈哈,这恐怕就超出 Discuz! 的能力了。。。。 Hex 发表于 2016-11-8 14:01
哈哈,这恐怕就超出 Discuz! 的能力了。。。。
猪大 你抽个时间自己改改 不就好了吗 换个背景 不是太难吧.:P Martix 发表于 2016-11-10 12:22
猪大 你抽个时间自己改改 不就好了吗 换个背景 不是太难吧.
改 discuz 不好改。。。。。先好好改改论坛样式吧~
页:
[1]