Php 想在codeigniter中创建动态子域吗?
在我的网站中,我想添加一个功能,让用户在域中使用他们的用户名 就像现在的codeigniter一样,我想让用户使用自己的url登录站点并做其他事情 例如: 我想要Php 想在codeigniter中创建动态子域吗?,php,.htaccess,codeigniter,codeigniter-url,Php,.htaccess,Codeigniter,Codeigniter Url,在我的网站中,我想添加一个功能,让用户在域中使用他们的用户名 就像现在的codeigniter一样,我想让用户使用自己的url登录站点并做其他事情 例如: 我想要www.username.mysite.com/login或www.username.mysite.com/category 因此,在这里,用户可以使用凭据登录并添加类别。所以我有两个控制器在我的网站与登录和类别 那么如何使用routes或.htaccess实现这一点。这里是对您的问题的解释 好的,如果你已经阅读了链接上的解释,你就会知
www.username.mysite.com/login
或www.username.mysite.com/category
因此,在这里,用户可以使用凭据登录并添加类别。所以我有两个控制器在我的网站与登录和类别
那么如何使用routes或.htaccess实现这一点。这里是对您的问题的解释 好的,如果你已经阅读了链接上的解释,你就会知道你应该首先将你的所有子域重定向到www。在httpd.conf文件中有一个虚拟主机定义,它只包含yourdomain.com,用于将所有请求重定向到DocumentRoot
**ServerAlias yourdomain.com**
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/yourdoma/public_html
BytesLog domlogs/yourdomain.com-bytes_log
ServerName www.yourdomain.com
User yourdomain
Group yourdomain
CustomLog /usr/local/apache/domlogs/yourdomain.com combined
ScriptAlias /cgi-bin/ /home/yourdomain/public_html/cgi-bin/
您应该将服务器别名修改为*.yourdomain.com,以将所有子域检索到文档根文件夹中。然后您应该能够修改或url解析您的uri以成功完成此操作 在服务器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>
很抱歉,我需要的不是正确的答案。好的,我只是想指出,您是否有对主机的ssh访问权限,或者访问httpd.conf文件,或者重新启动apache服务器。不,我没有任何访问权限。但是,创建动态子域与服务器有什么联系?如果您没有访问服务器的权限,无法按照建议修改dns/webserver详细信息,我怀疑您是否能够实现您想要的。可能的副本
$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;
}