2014-12-22 36 views
4

我的網站有問題。升級到mySQL 5.6後,主機povider重新編譯Apache和PHP。顯然他們也升級了WHM cPanel。代碼點火器,未找到404錯誤

至於現在我的網站可以正常顯示,但是當試圖登錄時,它無法找到請求的特定頁面。

錯誤消息:

所請求的網址/主/ cek_login在此服務器上找到。 此外,嘗試使用ErrorDocument處理請求時遇到404 Not Found錯誤。從的cPanel

錯誤消息:

[週一年12月22 10時10分58秒2014] [錯誤]文件不存在:/家庭/ XXX /的public_html /主 [週一12月22日10時10分56秒2014] [錯誤]文件不存在:/home/xxx/public_html/404.shtml

我的分析至今:

CI版本:2.2
PHP版本:5.4.3.5
MySQL的版本: 5.6.21
cPanel版本11.46 0.1(建4)

主 - >實際上是一個名爲main.php文件
cek_login - >裏面main.php功能,在用戶表上運行的驗證對記錄。

文件夾結構如下。

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

如下應用程序文件夾內
$配置[ 'BASE_URL'] = ''

<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 ['index_page'] ='';
$ config ['uri_protocol'] ='REQUEST_URI'; - >以前試過AUTO,但是沒用。以前是AUTO

根文件夾
RewriteEngine敘述在
的RewriteCond%{} REQUEST_FILENAME中的.htaccess!-f
的RewriteCond%{} REQUEST_FILENAME!-d
重寫規則^(。*)$的index.php/$ 1 [L]

htaccess的其他文件夾中
從所有

routes.php文件
否認$ route ['default_controller'] =「main」;
$ route ['404_override'] ='not_found';

我試着看到配置文件,並在發佈之前嘗試了很多技巧。

我的懷疑是對BASE_URL功能或路由機制。我不確定。

我是到代碼點火器或PHP,也在服務器管理。我的優勢在於數據庫。

請幫助縮小根本問題。

最好的問候, Ridwan

+0

檢查'其他控制器是否可以訪問',如果有的話,請發佈'base_url','htaccess'和路由。 –

回答

2

這個錯誤可能會發生很多原因。這裏是一些
1.確保你有在控制器文件夾,裏面main.php main.php你應該有一個主類延伸是CI_Controller這樣

class Main extends CI_Controller 

2.確保你的.htaccess working.If你以前的步驟是確定然後嘗試打這個鏈接

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

如果此鏈接的作品,你可能有問題的.htaccess
3.您的cPanel錯誤告訴你的.htaccess不工作。
檢查您的服務器,如果它有主要.htaccess是重定向您的網站,如果沒有找到文件。如果是這樣,那麼你的子.htaccess將無法正常工作。
我認爲這是產生你的錯誤的主要原因。

+0

它已經解決了,事實證明.htaccess文件得到了EMPTIED!我不知道它是如何發生的,它只是變得空白。因此錯誤。在用本地設置檢查完東西后,我知道這是罪魁禍首。感謝您的努力! – RidwanT

1

請檢查您的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'); 
     } 
    } 
+0

它已經解決了,事實證明.htaccess文件得到了EMPTIED!我不知道它是如何發生的,它只是變得空白。因此錯誤。在用本地設置檢查完東西后,我知道這是罪魁禍首。感謝您的努力! – RidwanT

1

只要上傳一個測試文件,並檢查你的服務器目錄的文檔根目錄。

1.創建一個文件info.php的 2.寫代碼

<?php 
phpinfo(); 

3.Open任何broswer並鍵入http://www.yourdomain.com/info.php

  • 如果它工作正常,在info.php列出的信息中找到文檔roon

  • 如果這個http://www.yourdomain.com/info.php不起作用,請聯繫您的服務器支持團隊進行修復。基本上服務器配置問題,而不是Codeigniter文件。