Codeigniter App在一个子域中工作,但在另一个子域中不工作。为什么呢?

时间:2016-05-24 22:57:11

标签: php apache .htaccess codeigniter amazon-web-services

我有一个Codeigniter 3应用程序。我已经以这种格式正确设置了base_url:http://subdomain.domain.com/

我将应用程序上传到我们通过AWS配置的子域,并且在此服务器上找不到" 404 URL"尝试在此URL访问我的登录控制器方法时:subdomain.domain.com/users/login。我觉得这很奇怪,因为我认为我的htaccess文件是正确的,看起来像这样:

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

我的类名称应该是大写,因为它应该是Users,文件名也是大写的:Users.php。

可疑,我将app文件夹上传到一个完全不同的子域,一个通过Bluehost托管的子域,相应地更改了base_url,一切正常。没有404或任何东西。

我花费了大量时间来研究stackoverflow,虽然我看到了一些建议修复的问题和答案,但我已经按照这些并没有解决我的问题,让我相信这可能是一个问题我们的AWS框如何设置。它在ubuntu 14.04上,我创建了一个subdomain.conf作为创建子域的过程的一部分。我们通过GoDaddy获得了域名,我为子域名添加了一个A HOST。

非常感谢任何见解!

1 个答案:

答案 0 :(得分:1)

我解决了我的问题。我最终进入了我们的apache2.conf文件并更改了它:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted

对此:

AllowOverride All

在所有目录上。

将AllowOverride从None更改为All将放宽对文档根目录的访问权限。如果您使用的是linux,请记得使用sudo service apache2 restart重新启动Apache。