Jos*_*eph 19 php routes codeigniter http-status-code-404
我正在为两个应用程序(公共和管理应用程序)使用CodeIgniter.文档结构的重要元素是:
/admin
/admin/.htaccess
/admin/index.html
/application
/application/admin
/application/public
/system
.htaccess
index.php
Run Code Online (Sandbox Code Playgroud)
/admin/.htaccess文件如下所示:
DirectoryIndex index.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)
/admin/index.php有以下更改:
$system_folder = "../system";
$application_folder = "../application/admin"; (this line exists of course twice)
Run Code Online (Sandbox Code Playgroud)
/application/admin/config/routes.php包含以下内容:
$route['default_controller'] = "welcome";
$route['admin'] = 'welcome';
Run Code Online (Sandbox Code Playgroud)
欢迎是我的默认控制器.
当我调用域/管理员时,我收到404 Page Not Found错误.当我调用Domain/admin/welcome时,一切正常.在调试日志中,我收到以下错误消息:
DEBUG - 2010-09-20 16:27:34 --> Config Class Initialized
DEBUG - 2010-09-20 16:27:34 --> Hooks Class Initialized
DEBUG - 2010-09-20 16:27:34 --> URI Class Initialized
ERROR - 2010-09-20 16:27:34 --> 404 Page Not Found --> admin
Run Code Online (Sandbox Code Playgroud)
奇怪的是,这个设置完全适用于我的本地MAMP安装(使用localdomain/admin /),但是当我在"实时"服务器上发布并测试它时,我只得到404错误.
有任何想法吗?我究竟做错了什么?谢谢C.
Jos*_*eph 15
问题的原因是服务器使用FastCGI运行PHP.
将config.php更改为
$config['uri_protocol'] = "REQUEST_URI";
Run Code Online (Sandbox Code Playgroud)
一切顺利.
小智 7
将此答案留给了遇到我情况的其他人.
我的codeigniter应用程序在localhost/WAMP中工作正常,但在推送到AWS EC2实例时无法路由并生成404未找到的错误.我的问题是通过HERE htaccess在localhost中的解决方案解决的,但在EC2实例中不起作用
(路由到我的管理页面){domain}/admin正在生成404
该/etc/httpd/conf/httpd.conf文件需要修改.
- 在"DocumentRoot"/ var/www/html""(2个地方)的每个实例之后,需要将"AllowOverride None"更改为"AllowOverride All".
从AWS仪表板重新启动EC2实例.
{domain}/admin现在可以访问并按预期工作.
希望这有助于其他人喜欢它帮助我!
小智 7
您可以尝试两种方法中的一种或两种方式的组合.
我希望这可以帮助别人
小智 7
例如:
您的控制器名称是 YourController
您的网址必须是:
http://example.com/index.php/YourController/method
不是:
http://example.com/index.php/yourcontroller/method
| 归档时间: |
|
| 查看次数: |
121338 次 |
| 最近记录: |