Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 想在codeigniter中创建动态子域吗?_Php_.htaccess_Codeigniter_Codeigniter Url - Fatal编程技术网

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

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实现这一点。这里是对您的问题的解释 好的,如果你已经阅读了链接上的解释,你就会知

在我的网站中,我想添加一个功能,让用户在域中使用他们的用户名

就像现在的codeigniter一样,我想让用户使用自己的url登录站点并做其他事情

例如:

我想要
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;
}