关于一个ci框架程序里如何支持多个域名

关于一个ci框架程序里如何支持多个域名,第1张

1.首先参考了CI手册的http://codeigniter.org.cn/user_guide/general/managing_apps.html来设置mob目录。

我的结构是:

applications/mob/

applications/mob/config/

applications/mob/controllers/

applications/mob/libraries/

applications/mob/models/

applications/mob/views/

然后再根目录下复制原本的主入口index.php,并改名为mob.php。再:

$application_folder= 'applications/foo'

这样你就可以同个http://www.bigzb.com/mob.php/...去访问手机版了。

2.解析www.bigzb.com和m.bigzb.com到同个空间

3.设置.htaccess文件

RewriteCond %{HTTP_HOST} ^(www.)?bigzb_.com$

RewriteCond %{REQUEST_FILENAME} !-d //如果文件夹存在则在这里就不继续执行

RewriteCond %{REQUEST_FILENAME} !-f //如果文件存在则在这里就不继续执行

RewriteRule ^(.*)$ /index.php/$1 [L]

//这样就可以隐藏www.bigzb.com/index.php/...里面的index.php了

RewriteCond %{HTTP_HOST} ^(m.)?bigzb_.com$

#RewriteCond %{REQUEST_FILENAME} !-d //这里不使用这句是因为,如果使用它会跳到index.php里面去

RewriteCond %{REQUEST_FILENAME} !-f //如果文件存在则在这里就不继续执行

RewriteRule ^(.*)$ /mob.php/$1 [L]

//这样就可以m.bigzb.com/mob.php/...里面的index.php了

如此一来你就可以通过www.bigzb.com访问主站,m.bigzb.com访问手机版了

这个是一个网址,.ci表示这个域名是科特迪瓦的国别域名,如同中国是.cn一样。

后面的443表示是服务器的端口。

前面的部分只是在域名前面做了子域名设置,对应二级、三级。

本文以实例讲述了CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能,对于网站开发来说非常实用。

具体操作方法如下:

语言包文件如下:

application\language\english\bm_lang.php

application\language\zh-cn\bm_lang.php

注意:

1.

“_lang.php”的前缀要一致;

2.

如果还有其他语言包,可创建文件application\language\***\bm_lang.php(***为自己取的名字,以对应不同的语言)

实现代码如下:

public

function

lang($line,$param

=

array())

{

//判断浏览器语言

$default_lang_arr

=

$_SERVER['HTTP_ACCEPT_LANGUAGE']

$strarr

=

explode(",",$default_lang_arr)

$default_lang

=

$strarr[0]

//

echo

'1'.$default_lang

//

根据浏览器类型设置语言

if(

$default_lang

==

'en-us'

||

$default_lang

==

'en'){

$this->config->set_item('language',

'english')

//

根据设置的语言类型加载语言包

$this->load->language('bm','english')

}else{

$this->config->set_item('language',

'zh-cn')

$this->load->language('bm','zh-cn')

}

//

当前语言

//

echo

'2'.$this->config->item('language')

//

根据语言包中的某个语言标记的翻译,判断是否使用了语言包

$line

=

'title'

$param

=

array()

//

$CI

=

&

get_instance()

//

$line

=

$CI->lang->line($line)

//

上面两行等价于下面一行,&

get_instance()实例化

$line

=

$this->lang->line('title')

if(is_array($param)

&&

count($param)

>

0)

{

array_unshift($param,

$line)

$line

=

call_user_func_array('sprintf',

$param)

}

echo

'^_^'.$line

}


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/59047.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-27
下一篇2023-02-27

发表评论

登录后才能评论

评论列表(0条)

    保存