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