我需要使用子域作为类。即,而不是:
www.example.com/class/function/ID,例如www.example.com/town-name/history/1
我需要
class.example.com/function/ID,例如town-name.example.com/history/1
我已经在nginx中通配符了子域,现在我已经在谷歌上搜索并阅读了
http://codeigniter.com/user_guide/libraries/uri.html
http://codeigniter.com/user_guide/general/urls.html
http://codeigniter.com/user_guide/helpers/url_helper.html
但没有任何关联。我需要它,这样,如果数据库中添加了另一个城镇,它就会解决这个新城及其细节。
我看到很多关于重写、重定向等的讨论,但我特别需要使用子域城镇名称作为类变量。如果可能的话,在一个思想世界里,我可以同时使用两者,但我怀疑这是否可能?
几年来,我一直在普通的老php中运行良好;现在,如果可能的话,我想升级到codeigniter,而不破坏我的旧结构(另外还有一个很好的理由)。
谢谢你。
你可以做到。我正在为我的一个项目做这件事。
在控制器的构造函数中,只需分解当前url并获取子域,然后将其作为变量传递到方法中
public class Controller extends CI_Controller {
$subdomain = null;
public __construct()
{
// explode url here and set $this->subdomain = the actual subdomain
}
public function index()
{
if($this->subdomain == null) {
show_404();
} else {
// do what you wish
}
}
}