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

时间:2013-12-25 11:32:12

标签: apache codeigniter virtualhost codeigniter-url codeigniter-routing

我需要CodeIgniter的帮助 - 尝试在Ampps的虚拟主机环境中工作。

我一直在关注以下教程: http://net.tutsplus.com/tutorials/php/basecamp-style-subdomains-with-codeigniter/

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

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

www.user1.test.com -> goes to /students directory

我在上面的本地机器上工作了。不同的URL将我带到正确的目录。 CI工作。当我尝试使用重定向访问控制器时出现问题。

如果我尝试redirect('error')我得到:

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

还会收到“内部服务器错误”

如果我输入

user2.test.com/error

我收到“内部服务器错误”

如果我输入

user2.test.com/index.php/error

我得到了理想的结果

如果我尝试直接在

中加载视图,它会起作用
$this->load->view('error')

我认为我需要有关网址和路径的帮助。最感激的任何指导。


CI日志文件中没有什么特别启发

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

我改变的事情:


root中的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>

应用/ config.php中

$config['base_url'] = $_SERVER['HTTP_HOST'];

根据教程。需要充满活力。


我的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>

root中的index.php

保持原样。当我试图改变这些时,事情变得更糟。

$system_path = 'system';
$application_folder = 'application';

1 个答案:

答案 0 :(得分:0)

您的主机文件怎么样?您的主机文件应为127.0.0.1 test.com,并首先尝试禁用学生子域,看看它是否有效。看起来你的两个ServerName test.com同样尝试用student.com来改变另一个,看看最近发生的事情都是冲突的

相关问题