2014-12-22 2 views
4

내 사이트에 문제가 있습니다. mySQL 5.6으로 업그레이드 한 후 호스트 povider가 Apache와 PHP의 재 컴파일을 수행했습니다. 명백하게 그들은 또한 WHM cPanel을 업그레이드했습니다.코드 점화 기, 찾을 수 없음 404 오류

지금은 내 사이트를 제대로 표시 할 수 있지만 로그인을 시도하면 요청한 특정 페이지를 찾을 수 없습니다.

오류 메시지 :

요청 된 URL/주/cek_login이 서버에서 찾을 수 없습니다. 또한 ErrorDocument를 사용하여 요청을 처리하는 동안 404 찾을 수 없음 오류가 발생했습니다. 의 cPanel에서

오류 메시지 :

[월 12월 10시 10분 58초 2014 (22)] [오류] 파일이 존재하지 않습니다 :/홈/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'] = '요청'; -> 전에 AUTO를 시도했지만 쓸모가 없습니다. 이전!
한다 RewriteCond % {REQUEST_FILENAME} -f!
RewriteRule의

htaccess로 루트 폴더
한다 RewriteEngine
한다 RewriteCond % {REQUEST_FILENAME}에있는 AUTO
-d이었다^(. *) $의 index.php를/$ 1 [L]
모든

routes.php
에서 부정 다른 폴더

의 .htaccess$ route [ 'default_controller'] = "main";
$ route [ '404_override'] = 'not_found';

설정 파일도 보려고했는데 게시하기 전에 많은 트릭을 시도했습니다.

내 의심은 base_url 함수 또는 라우팅 메커니즘에 있습니다. 나는 잘 모르겠다.

저는입니다.은 코드 이그니 터 또는 PHP이며 서버 관리에서도 마찬가지입니다. 내 힘은 데이터베이스에있다.

근본적인 문제를 좁히는 데 도움을주십시오.

안부, Ridwan

+0

'다른 컨트롤러에 액세스 할 수 있는지 확인하십시오. '있으면'base_url','htaccess' 및 route를 게시하십시오. –

답변

2

이 오류는 여러 가지 이유로 발생할 수 있습니다. 여기에 당신이 컨트롤러 폴더 아래 및 main.php 내부 main.php이 있는지 1.make 일부
이 확실이

class Main extends CI_Controller 

을 2.Make 당신의 .htaccess 제대로 작용처럼 CI_Controller를 확장하는 클래스 홈페이지가 있어야입니다 이전 단계는이 링크는
3.your의 cPanel 오류가 당신의 .htaccess가 작동하지 않는 것을 알 수 htaccess로 문제가있을 수 있습니다 작동하는 경우이 링크를

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

을 공격하려고 괜찮습니다.
파일을 찾을 수없는 경우 사이트를 리디렉션하는 기본 .htaccess가 있는지 서버를 확인하십시오. 그렇다면 하위 .htaccess가 작동하지 않습니다.
나는 이것이 당신의 실수를 일으키는 주된 이유라고 생각한다.

+0

이미 해결되었으므로 .htaccess 파일이 밝혀졌습니다. 어떻게 된 일인지 모르겠다. 그냥 아무렇지도 않게된다.따라서 오류. 내 로컬 설정으로 물건을 확인한 후, 나는 이것이 범인다는 것을 알고. 노력에 감사드립니다! – RidwanT

1

,

$config['base_url']

다음 'routes.php'를 확인하여 config.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 파일이 밝혀졌습니다. 어떻게 된 일인지 모르겠다. 그냥 아무렇지도 않게된다. 따라서 오류. 내 로컬 설정으로 물건을 확인한 후, 나는 이것이 범인다는 것을 알고. 노력에 감사드립니다! – RidwanT

1

그냥 테스트 파일을 업로드하고 서버 디렉토리의 문서 루트를 확인하십시오.

1.Create

파일 info.php 2. 코드를 작성

<?php 
phpinfo(); 

3.Open 어떤이 broswer 및 입력 http://www.yourdomain.com/info.php

  • 잘 작동하는 경우

      info.php 페이지에 나열된 정보에서 문서 찾기 find

    1. http://www.yourdomain.com/info.php이 작동하지 않으면 서버 지원 팀에 문의하여 수정하십시오. 기본적으로 Codeigniter 파일이 아닌 서버 구성에 문제가 있습니다.