2012-12-28 2 views
1

나는이 자리를 차지하게 웹 서버 구성 변경 될 수있다 의심 할 수 있으며, 내 호스팅 제공 업체는 누구에게하지 않았지만 어쨌든 ... CodeIgniter는 전용 액세스 기본 경로 컨트롤러

나는 CodeIgniter의 인스턴스가 설정 한 다음 디렉토리 구조 :

/root 
    /codeigniter 
     /app 
     /sys 
    /www 
     /sandbox 
      /ci 
       /js 
       /css 
       /img 
       .htaccess 
       index.php 

따라서의 index.php에서, 나는 다음과 같은 변수가 있습니다 인해

$application_folder = '../../../codeigniter/app'; 
$system_path = '../../../codeigniter/sys'; 

이들은 상대 정의를 그것은 공유 호스팅 제공되는, 그러나 나는 그것이 문제 (WAMP에서 내가 명시 적으로 정의 된 그 폴더 경로를 가지고 있다고 생각하지 않도록 그런 식으로 작동하는 것으로 보입니다. C :/WAMP/CI/config.php 파일에서

, 나는 다음과 같은 변수가 설정 한 응용 프로그램) :

$config['base_url'] = 'http://******.co.uk/sandbox/ci/'; 
... 
$config['index_page'] = ''; 
... 
$config['uri_protocol'] = 'AUTO'; 

및 www /에서 샌드 박스/CI 내 htaccess로 파일과 같이 설정됩니다

며칠 전까지 만해도이 모든 작업이 정상적으로 수행되었지만 크리스마스 직전에 공정한 파일 몇 개를 교체했으며 실수로 파일을 깨닫지 않고 덮어 쓸 수 있습니다. 이 설정은 내 WAMP 서버에서 제대로 작동하지만 실제 서버에서는 실패합니다 routes.php에 정의되지 않은 컨트롤러의 모든 기능에 액세스하려고하면 실패합니다.

내 routes.php은 다음과 같습니다

$route['default_controller'] = "home_controller"; 
$route['404_override'] = ''; 

home_controller 내가 (/ 로그인을 auth_controller하는 양식 POST를 통해 처리됩니다) 로그인 그런 짓을하려고하지만 경우에, 잘 나타납니다, 그것은 404와 함께 실패 . 나는 home_controller에 추가 기능이 없습니다.

로깅 임계 값을 4로 설정하면 아무런 효과가 없으며 ChromePHP는 컨트롤러 경로를 찾을 수 없다고 제안합니다.

mod_rewrite가 작동하고있는 것 같습니다. 왜냐하면 .htaccess 파일에 일반 텍스트를 추가하면 서버 오류 500이 발생하고 index.php 다시 쓰기가 작동하기 때문입니다. 또한 rewrite_short_tags를 TRUE로 설정했습니다.

config.php에서 uri_protocol 유형을 모두 시도했지만 아무런 차이가없는 것 같습니다. 내가 수행 한 작업 인 경우 routes.php에서 누락되었거나, 내 .htaccess에서 누락 된 것이 있습니다.

의견을 보내 주시면 감사하겠습니다. 내가 말했듯이,이 전체 설정은 WAMP 서버에서 문제없이 작동합니다.

답변

3

문제는 귀하의 htaccess에 있다고 생각합니다. 이 htaccess를 잠시 후에 사용해보십시오.

<IfModule mod_rewrite.c> 

RewriteEngine On 

# Set the rewritebase to your CI installation folder 
RewriteBase /sandbox/ci/ 


# Send everything to index.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

</IfModule> 

이 정보가 도움이 되었기를 바랍니다.

+0

당신, 선생님, 사람들 사이에는 신이 십니다. 나는 얼마 전 htaccess 파일로 주위를 둘러 보았던 기억이있다. 그래서 나는 어느 시점에서 rewritebase를 덮어 썼을 것이고 그것을 나의 호스팅 공간으로 다시 복사 할 것임에 틀림 없다. 정말 고맙습니다! –

+0

여러분을 환영합니다! WAMP가 RewriteBase에 융통성있는 것은 가능하지만 확실하지 않습니다. 오래 전 WAMP를 사용했습니다. 나는 그것이 언젠가 맥에게 올 것이기를 바랍니다 :) –

+0

XAMPP는 OS X 용 WAMP의 대안입니다.RewriteBase의 경우 index.php가 "default"위치 (예 : (c : /wamp/www/index.php))에 있기 때문에 내 WAMP 인스턴스가 만족 스러울 수 있었지만 웹 서버에서는 2 레벨 디렉토리 구조가 더 낮습니다 (/var/www/sandbox/ci/index.php). 어느 쪽이든, 모두 내 세상에 다시 좋네요 :) –