【问题标题】:Codeigniter 3 404 Page Not FoundCodeigniter 3 404 页面未找到
【发布时间】:2017-01-07 17:36:28
【问题描述】:

我已将 codeIgniter 3 应用程序从本地上传到服务器,并设置了以下文件:

文件 .config

$config['base_url'] = 'http://www.myswebsite.com/project';

文件 .routes

$route['default_controller'] = 'projects';

文件 .htaccess

RewriteEngine On
RewriteBase /project

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]

当我转到 mainController 项目时,我可以看到该页面,但在登录后(该页面需要登录)我收到以下错误:
404 Page Not Found
网址:www.mywebsite.come/project/login

我无法理解原因......

【问题讨论】:

  • 我发现了问题。登录控制器是用小写 (login) 而不是大写 (Login) 编写的。

标签: php codeigniter


【解决方案1】:

我有同样的问题,但我通过这样做克服了这个问题

为 Apache 2.2 或更高版本启用 mod_rewrite。为此,请在根项目目录中创建 .htaccess 文件。在您的文件中添加以下代码并保存。

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteBase /projectname/
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

记住其他重要的想法:

控制器文件名和类名首字母必须大写。

例子:

文件名:Test.php 但不是 test.php

类名:类 Test 扩展 CI_Controller {} 但不是类测试 ...

仔细阅读链接以更好地理解: https://www.codeigniter.com/userguide3/general/controllers.html#let-s-try-it-hello-world

注意:URL 不能包含任何大写字母。都应该是小写字母。

例子:

正确 www.projectname.com/test/some_method

不正确 www.projectName.com/Test/someMethod

希望你能解决这个问题。

【讨论】:

    【解决方案2】:

    检查控制器类名是否应为大写字母。第一个字符应该是大写

    【讨论】:

      【解决方案3】:

      您可能需要重定向到 projects 而不是 project 控制器。

      【讨论】:

        猜你喜欢
        • 2015-07-28
        • 1970-01-01
        • 1970-01-01
        • 2015-05-19
        • 2016-02-21
        • 2015-03-30
        • 2018-05-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多