将CodeIgniter安装移动到子域会导致500内部服务器错误

时间:2012-03-08 20:12:17

标签: apache .htaccess codeigniter subdomain

在我的新子域名主页工作正常,但其他一切都会引发500内部服务器错误。我确定这是一个.htaccess问题。我在GiftFlow.org上有一个基于CodeIgniter的Web应用程序,工作正常。

网络根目录/var/www/vhosts/giftflow.org/httpdocs

从我的托管控制面板,我创建了一个子域favorece.giftflow.org并将所有内容克隆到其中。

网络根目录/var/www/vhosts/favorece.giftflow.org/httpdocs

当我从浏览器调用favorece.giftflow.org时,索引页面显示正常,包含CSS,但当我尝试导航到任何其他页面时,我收到500内部服务器错误。我的Apache错误日志说:

  

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

这是我在CodeIgniter的application / config / config.php

中的base_url
$config['base_url'] = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 's' : '').'://'.$_SERVER['HTTP_HOST'].str_replace('//','/',dirname($_SERVER['SCRIPT_NAME']).'/');

我的.htaccess文件位于favorece.giftflow的webroot中:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|assets|user_guide|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /giftflow/index.php/$1 [L]

2 个答案:

答案 0 :(得分:8)

您不断重定向到/giftflow/index.php。 RewriteBase可能有所帮助,以及RewriteRule的其他标志。尝试:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [NC,L,QSA]

此外,CI通常会自动检测base_url,因此您最安全的做法是将其留空。您在config.php中定义的逻辑也可能最好放在主index.php文件中。

答案 1 :(得分:2)

是的,它的作品......!

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [NC,L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]

我试着http://mango.penguintechno.com