编程语言
首页 > 编程语言> > php – 想在codeigniter中创建动态子域吗?

php – 想在codeigniter中创建动态子域吗?

作者:互联网

在我的网站中,我想为用户添加一项功能,以便将他们的用户名与域名一起使用.

就像在codeigniter中一样,我现在想让用户使用他们自己的网址登录网站并做其他事情.

例如:

我想要www.username.mysite.com/login或www.username.mysite.com/category

所以这里用户可以使用他们的凭证登录并添加类别.所以我的网站上有两个控制器,带有登录名和类别.

那么如何使用路由或.htaccess来做到这一点.

解决方法:

在服务器Vhost文件中使用此代码:

<VirtualHost *:80>
    DocumentRoot "/home/yourdoma/public_html/yourdomain"
    ServerName yourdomain.com
    ErrorLog "logs/yourdomain.local-error.log"
    CustomLog "logs/yourdomain.local-access.log" common
    <Directory "/home/yourdoma/public_html/yourdomain">
        AllowOverride All
        Require all Granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/home/yourdoma/public_html/yourdomain"
    ServerName dummy-host.yourdomain.com
    ErrorLog "logs/yourdomain.com-error.log"
    CustomLog "logs/yourdomain.com-access.log" common
    ServerAlias *.yourdomain.com
    <Directory "/home/yourdoma/public_html/yourdomain">
        AllowOverride All
        Require all Granted
    </Directory>
</VirtualHost>

并为您的codeigniter配置文件:

$host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '';
$schema = isset($_SERVER['REQUEST_SCHEME']) ? $_SERVER['REQUEST_SCHEME'].'://' : 'http://';
$spl_host = explode("mysite.com", $host);
$subhost = '';
if (count($spl_host) == 2) {
    $subhost = current($spl_host);
}

if($host == $subhost.'mysite.com') {
    $config['base_url'] = $schema.$subhost.'mysite.com';
} else {
    $config['base_url'] = $schema.$host;
}

标签:htaccess,php,codeigniter,codeigniter-url
来源: https://codeday.me/bug/20190928/1827780.html