Apache 子目录中的Codeigniter控制器在虚拟主机中不工作
我需要CodeIgniter的帮助--尝试在AMPS中的虚拟主机环境中使用它 我一直在遵循以下教程: 我正在尝试在两个目录中运行两个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工作。当我尝试使用重定向访问控制器时,
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';