CI 묻고 답하기

제목 index.php 제거 관련해서 질문드려요.
글쓴이 초보개발자 작성시각 2014/06/26 11:13:18
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 17639   RSS
안녕하세요? ci 처음 접하는 초보 개발자 입니다.

현재 개발과 동시에 서버 설정도 하면서 index.php 제거 하고 있는 작업을 하고 있습니다.

강좌게시판의 웅파님의 글도 참고하고 책도 참고 하고 있으나 잘되지 않아 글을 남깁니다 ㅠㅠ

http://주소.com/test/

메인페이지 같은 경우에는 index.php가 제거 되어도 불러와지는데

나머지 컨트롤러에서 호출하는 페이지는

http://주소.com/test/index.php/class/method/ 로 해야 페이지가 불러와집니다.

현재 httpd 루트 디렉토리는 /var/www/html로 잡혀있는데 var/www/html/test 라고 잡아야 되는건가요?

웅파님의 글에 있는 설정은 다 해줬는데 제가 놓친 부분이 무엇이 있을까요?

도움 주시면 감사하겠습니다.
 다음글 관리자 접근을 해야 하는데, 어떻게 해야 할지.. (2)
 이전글 ci버전 3.0 VS 2.x (2)

댓글

변종원(웅파) / 2014/06/26 11:19:36 / 추천 0
test까지만 쳤을 경우 routes.php의 default controller를 호출하고 그 안의 index 메소드가 호출이 되기때문에
실행이 되는 것입니다.

서브 디렉토리에 여러개 따로 사이트를 사용할거 아니면 루트를 /test/까지 잡아주시고 설정해보세요.

그리고 컨트롤러 안에 디렉토리를 두고 성격별로 관리할 수 있어서 굳이 root 디렉토리 하위에 디렉토리로 구분하지 않아도 됩니다.

책에서는 여러 프로젝트를 설명하다 보니 서브 디렉토리를 사용한 것입니다.
초보개발자 / 2014/06/26 12:59:35 / 추천 0
웅파님 답변 감사합니다. 서브 디렉토리 제거하고 루트디렉토리 위에 올려놨습니다.
그런데도 잘 되지 않네요. ㅠㅠ

.htaccess 파일의 설정은

RewriteEngine On
RewriteBase /
RewriteCond $1 !^(index\.php|images|captcha|data|include|uploads|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
변종원(웅파) / 2014/06/26 13:41:47 / 추천 0
초보개발자/ 강좌게시판의 내용처럼 apache conf 나 config.php 등 모두 설정을 하신거죠?
리눅스라면 .htaccess 읽기퍼미션도 주시고요
.htaccess 파일의 위치는 index.php 가 있는 곳입니다.
 
초보개발자 / 2014/06/26 14:25:28 / 추천 0
웅파님 신경써주셔서 감사합니다.
.htaccess

파일내용을

<IfModule mod_rewrite.c>
02.# Turn on URL rewriting
03.RewriteEngine On
04. 
05.# If your website begins from a folder e.g localhost/my_project then
06.# you have to change it to: RewriteBase /my_project/
07.# If your site begins from the root e.g. example.local/ then
08.# let it as it is
09.RewriteBase /
10. 
11.# Protect application and system files from being viewed when the index.php is missing
12.RewriteCond $1 ^(application|system|private|logs)
13. 
14.# Rewrite to index.php/access_denied/URL
15.RewriteRule ^(.*)$ index.php/access_denied/$1 [PT,L]
16. 
17.# Allow these directories and files to be displayed directly:
18.RewriteCond $1 ^(index\.php|robots\.txt|favicon\.ico|public|assets|uploads|statics|css|js|images)
19. 
20.# No rewriting
21.RewriteRule ^(.*)$ - [PT,L]
22. 
23.# Rewrite to index.php/URL
24.RewriteRule ^(.*)$ index.php/$1 [PT,L]
25.</IfModule>

변경했더니 아주 잘되네요. 감사합니다.
vonzone / 2014/10/07 15:46:32 / 추천 0
저 같은 경우는 이렇게 했는데도 안 되길래 구글검색하여 3페이지까지 모두 보고 이 동영상으로 해결했습니다.

httpd.conf 파일에서 아래 부분도 변경해주니까 되더라고요....

혹시 웅파님이 알려주신대로 해도 되지 않는 분들은 아래 사항도 확인을 해야할 것 같습니다.


http://www.youtube.com/watch?v=tXSpT5SCFwM