본문 바로가기
공부/PHP

url에 index.php 없애기

by yeaseul912 2017. 12. 28.
728x90

코드이그나이터는.. localhost/index.php/welcome 이런식으로 url이 나온다.

 

여기서 index.php 를 없애는 방법에 대해 알아보자.

 

<윈도우 환경에서>

 

application - config - config.php 파일 수정

 

//$config['base_url'] = '';

$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");

$config['base_url'] .= "://" . $_SERVER['HTTP_HOST'];

$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);

 
//$config['index_page'] = 'index.php';
$config['index_page'] = '';
 
.htaccess 파일 수정 (이 파일은 index.php 와 같은 경로에 존재해야 하며, 없을경우 생성해주면된다.)
 
-index.php 파일이 최상위 경로에 있는경우
<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond $1 !^(index\.php|images|captcha|data|include|uploads|js|robots\.txt)
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
 
-index.php 파일이 하위 폴더 경로에 있는경우 (이것을 찾지 못하여 시간이 좀 걸림)
<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond $1 !^(index\.php|images|captcha|data|include|uploads|js|robots\.txt)
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ 폴더경로/index.php/$1 [L]
</IfModule>

출처: http://nahosung.tistory.com/23 [nahos] 

 

이처럼 index_page 에 있는 index.php 를 지우고 and ! .htaccess 파일을 수정해 주면 된다.

 

 

내가 필요한건 리눅스 버전에서의 index.php를 없애는거여서

여기에서 + apache 의 모듈중 하나인 mod_rewrite를 이용해야한다.

 

<리눅스 os에서의 index.php 없애기>

 

1. apache conf인 httpd.conf 파일에서 mod_rewrite 로 검색을 하면 통상적으로

code
1
#LoadModule rewrite_module modules/mod_rewrite.so

라는 라인이 나옵니다. 주석처리가 되어 있을 수 있구요. 일단 주석처리가 되어 있다면 주석(#)을 제거하시구요.
위 라인이 없다면 mod_rewrite 모듈을 설치하셔야 하는데 (요즘 apm 셋팅에는 거의 포함되어 있습니다.)
설치법도 검색으로... ^^; codeigniter에서의 사용법이 주 인지라...

그리고 또 한가지 대부분의 분들이 놓쳐서 헤매는 부분인데 .htaccess 파일을 사용하려면 서버 디렉토리의
AllowOverride 옵션을 All로 설정을 하셔야 합니다. 기본값은 None입니다. 
이 셋팅을 바꾸지 않으면 죽어도 index.php 를 없앨 수 없습니다.

code
1
AllowOverride None -> AllowOverride All

설정을 저장하고 아파치 서버를 재시작 합니다.
이제 mod_rewirte 모듈을 이용하여 .htaccess 파일을 쓸 수 있게 되었습니다.


...라고하였는데나는왜............ httpd.conf를 못찾겠느뇽....

 

없어.. .없어... 없어!!!! ㅠㅠㅠ 다른데 가서 질문해봐야겠다... 하...

 

반응형

댓글