Apache 子目录中的Codeigniter控制器在虚拟主机中不工作

Apache 子目录中的Codeigniter控制器在虚拟主机中不工作,apache,codeigniter,virtualhost,codeigniter-url,codeigniter-routing,Apache,Codeigniter,Virtualhost,Codeigniter Url,Codeigniter Routing,我需要CodeIgniter的帮助--尝试在AMPS中的虚拟主机环境中使用它 我一直在遵循以下教程: 我正在尝试在两个目录中运行两个CodeIgniter安装: /学生和 /教师 www.test.com -> goes to /teachers directory www.user1.test.com -> goes to /students directory 我已经在我的本地机器上完成了上述工作。不同的URL会将我带到正确的目录。CI工作。当我尝试使用重定向访问控制器时,

我需要CodeIgniter的帮助--尝试在AMPS中的虚拟主机环境中使用它

我一直在遵循以下教程:

我正在尝试在两个目录中运行两个CodeIgniter安装: /学生和 /教师

www.test.com -> goes to /teachers directory

www.user1.test.com -> goes to /students directory
我已经在我的本地机器上完成了上述工作。不同的URL会将我带到正确的目录。CI工作。当我尝试使用重定向访问控制器时,问题出现了

如果我尝试
重定向('error')
我会得到:

user2.test.com/user2.test.com/error

还将获得一个“内部服务器错误”

如果我输入

user2.test.com/error

我得到一个“内部服务器错误”

如果我输入

user2.test.com/index.php/error

我得到了想要的结果

如果我尝试直接在中加载视图,它会起作用

$this->load->view('error')
我想我需要URL和路径方面的帮助。非常感谢您的指导


CI日志文件中没有什么特别有启发性的东西

在Apache日志中,我发现: 由于可能的配置错误,请求超出了10个内部重定向的限制。如有必要,使用“LimitInternalRecursion”增加限制。使用“日志级别调试”获取回溯

我改变了一些事情:


根目录中的htaccess-已更改重写基。还删除index.php

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /students/

RewriteCond %{REQUEST_URI} ^system.*

RewriteRule ^(.*)$ index.php?/$1 [L]

RewriteCond %{REQUEST_URI} ^application.*

RewriteRule ^(.*)$ index.php?/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?$1 [L]

</IfModule>

<IfModule !mod_rewrite.c>

 ErrorDocument 404 index.php

</IfModule>
根据教程。需要有活力


我的Apache hppd-vhosts.conf文件

NameVirtualHost 127.0.0.1:80
NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "C:/Program Files/Ampps/www/teachers"
    ServerName test.com
    ServerAlias test.com

    <Directory "C:/Program Files/Ampps/www/teachers">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/Program Files/Ampps/www/students"
    ServerName test.com
    ServerAlias *.test.com

    <Directory "C:/Program Files/Ampps/www/students">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

你的主机文件呢?您的主机文件应该是
127.0.0.1 test.com
,首先尝试禁用学生子域,看看它是否有效。看起来你的两个
ServerName test.com
都是一样的,试着用
student.com
更改另一个,看看会发生什么,很可能两者都有冲突

NameVirtualHost 127.0.0.1:80
NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "C:/Program Files/Ampps/www/teachers"
    ServerName test.com
    ServerAlias test.com

    <Directory "C:/Program Files/Ampps/www/teachers">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/Program Files/Ampps/www/students"
    ServerName test.com
    ServerAlias *.test.com

    <Directory "C:/Program Files/Ampps/www/students">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
$system_path = 'system';
$application_folder = 'application';