首页 文章

代码点火器,未找到404错误

提问于
浏览
4

我的网站有问题 . 在升级到mySQL 5.6之后,主机povider重新编译了Apache和PHP . 显然他们也升级了WHM cPanel .

至于现在我的网站可以正常显示,但是当试图登录时,它找不到所请求的特定页面 .

错误消息:

在此服务器上找不到请求的URL / main / cek_login . 此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误 .

来自cPanel的

错误消息:

[2014年12月22日10:10:58] [错误]文件不存在:/ home / xxx / public_html / main [2014年12月22日10:10:56] [错误]文件不存在:/ home / xxx /public_html/404.shtml

到目前为止我的分析:

CI版本:2.2
PHP版本:5.4.3.5
mySQL版本:5.6.21
cPanel版本11.46.1(版本4)

main - >实际上是一个名为main.php的文件cek_login - >是main.php中的一个函数,它对用户表中的记录运行验证 .

文件夹结构如下 .

/home
   /application
       /controllers
           /main
       /view
          /login_view
   /system
   /assets
   /cgi-bin

代码如下

<div class="loginForm">
  <?=($_GET[ 'error'])? "<div class='alert'>$_GET[error]</div>": ""?>
    <form class="form-horizontal" action="<?php echo base_url().'main/cek_login'; ?>" method="POST">

config.php在应用程序文件夹中
$ config ['base_url'] ='';
$ config ['index_page'] ='';
$ config ['uri_protocol'] = 'REQUEST_URI'; - >之前试过AUTO,但没用 . 以前是AUTO

根文件夹中的.htaccess
RewriteEngine On
RewriteCond%
! - f
RewriteCond%
!-d
RewriteRule ^( . *)$ index.php / $ 1 [L]

.htaccess在另一个文件夹中
否认所有人

routes.php文件
$ route ['default_controller'] = "main";
$ route ['404_override'] = 'not_found';

我试图查看配置文件,并在发布之前尝试了很多技巧 .

我怀疑是在base_url函数或路由机制上 . 我不确定 .

我也是服务器管理中的Code Igniter或PHP的 NEW . 我的优势在于数据库 .

请帮助缩小根本问题 .

最好的问候,Ridwan

3 回答

  • 2

    这个错误可能由于许多原因而发生 . 这里有一些
    1.确保你在控制器文件夹下有main.php,在main.php里面你应该有一个类Main来扩展CI_Controller这样

    class Main extends CI_Controller
    

    2.确保你的.htaccess工作 . 如果你的上一步没问题,那么试着点击这个链接

    your_site_url/index.php/main/cek_login//make sure cek_login function exists inside the controller
    

    如果此链接有效,则可能存在.htaccess问题
    3.你的cpanel错误告诉你.htaccess无法正常工作 .
    检查你的服务器是否有主.htaccess,如果找不到文件,重定向你的网站 . 如果这样,你的子.htaccess将无法正常工作 .
    我认为这是产生错误的主要原因 .

  • 2

    请检查你的config.php

    $config['base_url']

    然后检查'routes.php',在下面添加一行

    $route['main/(:any)'] = 'main/index';
    

    然后,在控制器文件中添加登录检查 .

    // Login check
        $exception_uris = array(
                'main/cek_login',
                'main/cek_logout'
        );
        if (in_array(uri_string(), $exception_uris) == FALSE) {
            if ($this->user_m->loggedin() == FALSE) {
                redirect('main/cek_login');
            }
        }
    
  • 3

    只需上传测试文件并检查服务器目录的文档根目录即可 .

    1.创建一个文件info.php 2.编写代码

    <?php
     phpinfo();
    

    3.打开任何broswer并键入http://www.yourdomain.com/info.php

    • 如果工作正常,请在info.php页面的列出信息中找到文档

    • 如果此http://www.yourdomain.com/info.php无效,请与服务器支持团队联系以进行修复 . 服务器配置基本上是问题,而不是Codeigniter文件 .

相关问题