LANGUAGE/PHP

[PHP] CI / index.php 경로

보겸삼촌 2020. 2. 4. 23:56

# 개발환경

os : windows10 Pro

nginx version : nginx-1.16.1

php version : 7.4.2

composer version : 1.9.3

codeigniter/framework (3.1.11)

 

 CI는 MVC 패턴에 충실하기 때문에 views 디렉토리에 사용자에게 보여줄 화면을 구성하는데,

CI를 설치하고 아무런 설정값을 변경하지 않았다면 다음과 같이 경로에 접근해야 함

 

 예를 들면 [프로젝트명]/application/views 경로에 위치한 welcome_message.php 파일에 접근하기 위해서는

http://localhost/index.php/welcome_message.php

 이런식으로 접근해야 우리가 원하는 화면을 확인할 수 있음

 

 

 그러나 우리가 원하는 경로 접근 방식은 중간에 index.php가 없이 다음과 같이 접근하고 싶어함

http://localhost/welcome_message.php

  하지만 결과는 다음과 같음

 

 

 그래서 다음과 같이 실행하기 위해서 설정을 변경해줘야 함

 

 

1. 프로젝트/application/config/config.php

#C:\mement\nginx\html\sub_proj\application\config\config.php

수정 전 : $config['index_page'] = 'index.php';

수정 후 : $config['index_page'] = '';

 

 

2. .htaccess 파일 추가

 

  2.1. C:\mement\nginx\html\sub_proj\application 경로에 있는 .htaccess 파일을

       프로젝트 루트 디렉토리[C:\mement\nginx\html\sub_proj]에 복사

 

2. nginx/conf/nginx.conf 파일 수정

 

  2.1. 내용 추가

location / {
            root   html;
            index  index.html index.htm index.php;

if ( $uri !~ ^/(index\.php|css|images|core|uploads|js|robots\.txt|favicon\.ico) ) 
{ rewrite ^ /index.php last; }
}

 

 

  2.2. 주석 해제 및 내용 수정

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

 

 

  2.3. 내용 추가

server{

   listen       80;
        server_name  localhost;

   .

   .

   .

   if (!-e $request_filename ) {
       rewrite ^(.*)$ /index.php last;
   }

}

 

 

3. 확인