我有一个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。
非常感谢任何见解!
答案 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。