Codeigniter的URI还没那么强大,要实现将二级域名绑定到某个控制器上,还得动点手脚。要实现的结果是将 => 来访问。 首先你要确保域名泛解析了。泛域名解析是存在一定危害的,所以你要
在application/config/下建立一个domain.php文件,这里面放你要解析的子域名(对应CI控制器)
-
<?php
-
if (!defined('BASEPATH'))
-
exit('No direct script access allowed');
-
$domain=array('res');
然后修改system/core/URI.php的_set_uri_string方法:
-
function _set_uri_string($str)
-
{
-
$str = remove_invisible_characters($str, FALSE);
-
-
// If the URI contains only a slash we'll kill it
-
$this->uri_string = ($str == '/') ? '' : $str;
-
@include(APPPATH.'config/domain'.EXT);
-
$serverName = explode('.', $_SERVER['SERVER_NAME']);
-
if($serverName[0] !="www"){
-
if (in_array($serverName[0], $domain)) {
-
$this->uri_string = '/' . $serverName[0]."/".$this->uri_string;
-
}else{
-
show_404();
-
}
-
}
-
}
这里的修改的意思是:当网站的二级域名是www时,不做任何处理;当二级域名是我配置文件里的域名时,就会进入我绑定的控制器的页面;当二级域名配置文件中不存在时,就显示404页面
阅读(1836) | 评论(0) | 转发(0) |