CI 묻고 답하기

제목 특정페이지 접근허가
글쓴이 네피아 작성시각 2010/03/04 12:10:24
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 27891   RSS
현재 환경은 이러합니다.

http://ppp.abc.com/admin/  관리자접속 (베이직인증)

/var/www/어쩌구저쩌구/ppp/httpdoc/admin/system ㅜapplication
                                                                                            ㅏconfig
                                                                                            ㅏcodeigniter
                                                                                            ㅏcache
                                                                                            ㅏ 이하 생략
/var/www/어쩌구저쩌구/ppp/ 밑에 .htaccess로 인증이 걸려있습니다.

만들어야 하는것은. 유저가 접속해서 등록하는페이지입니다..
http://ppp.abc.com/admin/user 또는 http://ppp.abc.com/user (이런식으로 접속가능. )

매뉴얼을 읽어봐도, 게시판을 찾아봐도,.
/var/www/어쩌구저쩌구/ppp/httpdoc/admin/system /application 요 밑에폴더를 생성해서
집어넣는 방법은 보입니다만..
그럴경우 이미 만들어 놓은 콘트롤,모델 을 이용하기 위해서는 복사해서 집어 넣어야 되는것 같습니다만.(잘못 이해하고 있는것인지는 모르겠습니다만..)

단지 view폴더만 밖으로 일부 빼서 접속가능하게 하는 방법은 없을까요?(베이직인증이 필요 없기에..)
/var/www/어쩌구저쩌구/ppp/httpdoc/user/뷰 화일... 요렇게 말입니다..

index화일에서  조절을 하면 된다고 주위에서 떠들어 대기는 합니다만..

재테크 하면 부자 된다 라고 막연히 얘기하는것 같은 느낌이 ㅜㅜ;



 다음글 gif이미지를 많이 로딩할때는 어떻게 하지요..? (2)
 이전글 뷰에 동적으로 데이터 추가하기 (3)

댓글

헛발이 / 2010/03/04 12:36:03 / 추천 0
초보자라서 속시원한 답변이 될지 모르겠습니다만.. 답변을 달아 봅니다.

기본적으로 http://ppp.abc.com 이라고 접속을 하게 되면
/var/www/어쩌구저쩌구/ppp/httpdoc/index.html을 찾게 해 두신건가요?

그리고 .htaccess로 인증이 걸려 있다는 말씀이 index.php를 없애기 위한 ci메뉴얼에 있는 .htaccess인가요? 아니면 .htaccess를 이용한 아이디 비밀번호인증을 말 하는건가요?

좀더 정보가 필요하지만...

기본적으로 http://ppp.abc.com로 접속했을때 /var/www/어쩌구저쩌구/ppp/httpdoc/index.html 이쪽으로 가는것이라면 .htaccess는 var/www/어쩌구저쩌구/ppp/httpdoc/ 여기에 있어야 합니다. 그래야 도메인으로 접속했을때 모든 것을 ci로 보내주니깐요...그리고 system이하 소스들은 어느 위치에 있어도 상관 없습니다. 원하는 위치에 두시고 ci의 index.php를 보시면 application디랙토리  설정과 system디랙토리 설정하는곳이 있거든요.. 그곳에다가 어디에 두엇는지 설정 하시면 됩니다..

ci를 사용하시다가 갑자기 일반적인 html문서를 접속하게 하고 싶다면 .htaccess파일에
RewriteEngine on
RewriteCond $1 !^(index\.php|test|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
test라는 폴더를 만들고 test명을 .htaccess안에 넣어 주면 그 디랙토리는 ci가 아닌 직접 url로 접속이 가능하게 됩니다..

음.. 질문의 요지를 맞게 이해 하고 답변을 적은건지 저도 의심스럽네요 ^^;
변종원(웅파) / 2010/03/04 14:53:59 / 추천 0

보통 application 디렉토리안에서 admin과 user를 나눠서 접근하도록 하는데
좀 특이한 방식을 사용중이시네요?

application/admin
                    /user
로 나누시고 /admin에 .htaccess로 접근제어 하시는건 어떨까요?
그러면 쉽게 해결가능한데요.

보안때문이라면 프레임워크 특성상 메인의 index.php를 타지 않으면 다이렉트로 컨트롤러, 모델에 접근을 할 수가 없기 때문에 문제가 없습니다.

헛발이 / 2010/03/04 15:19:39 / 추천 0
그러서 저는 root디랙토리 위에 올려 놓고 사용하죠...

+app
+system
+public
++index.php

이렇게요.. ^^;
네피아 / 2010/03/04 15:46:21 / 추천 0
헛발이님,웅파님 친절한 답변에 감사드립니다.

부가 설명을 하자면, 전에 만들어놓은 사람이 plesk에서 서브도메인(ppp)으로 셋팅 받아서..
(var/www/어쩌구저쩌구/ppp/httpdoc plesk에서 자동 셋팅 방식 인듯...)
/var/www/어쩌구저쩌구/ppp/httpdoc/admin/에 admin폴더를 만들고(베이직인증 걸고.) 그 밑에
ci 전체를 놓았습니다.

지금와서 뜯어 고치기에는.. 힘든 상황이라서, 헛발이님 의 답변처럼 view폴더를
/var/www/어쩌구저쩌구/ppp/httpdoc/user밑에 넣고 htaccess로 rewrite를 생각하고 있습니다.
 ci의 index.php설정을 어떻게든 하면  http://ppp.abc.com/user  로도 추가접근이 가능한것으로 알고는 있습니다만. 그 설정방법을 몰라서 질문을 올렸습니다..

/var/www/어쩌구저쩌구/ppp/httpdoc/admin/요밑에 들어있는 콘트롤,모델 을 사용해야 되나,
cp -r  /var/www/어쩌구저쩌구/ppp/httpdoc/admin/ /var/www/어쩌구저쩌구/ppp/httpdoc/user/
이렇게 하고 주소 설정만 고치면 쉽게 되기는 합니다만. ..

전에 만들어놓은 사람은..위의 카피  방법을 사용해서 만들어 놓아서.., 무려 3개의 폴더에 같은 소스가 들어 있습니다..
/var/www/어쩌구저쩌구/ppp/httpdoc/admin/system ㅜapplication     ㅜconfig
                                                                                            ㅏconfig              ㅏ controller
                                                                                            ㅏcodeigniter     ㅏ model
                                                                                            ㅏcache              ㅏ 이하 생략  
                                                                                            ㅏ 이하 생략
/var/www/어쩌구저쩌구/ppp/httpdoc/admin2/system ㅜapplication     ㅜconfig
                                                                                            ㅏconfig              ㅏ controller
                                                                                            ㅏcodeigniter     ㅏ model
                                                                                            ㅏcache              ㅏ 이하 생략  
                                                                                            ㅏ 이하 생략
/var/www/어쩌구저쩌구/ppp/httpdoc/admin3/system ㅜapplication     ㅜconfig
                                                                                            ㅏconfig              ㅏ controller
                                                                                            ㅏcodeigniter     ㅏ model
                                                                                            ㅏcache              ㅏ 이하 생략  
                                                                                            ㅏ 이하 생략
이런식입니다..
접속url이
http://ppp.abc.com/admin/ 
http://ppp.abc.com/admin2/ 
http://ppp.abc.com/admin3/  
베이직인증(암호)  다르고 뷰화일이 조금 다를뿐입니다..(콘트롤,모델등등 완전 같은소스..copy해놓은것이므로..같을수 밖에 없겠죠..)
소스보고 엄청 어의 없더군요..
콘트롤,모델 조금 수정하면 3곳에 복사해 넣어야 됩니다. ㅜㅜ
4곳에 복사해서 넣고싶지는 않아서.. 질문을 올렸습니다..

그래도 많은 배움이 되었습니다.감사합니다.



변종원(웅파) / 2010/03/04 15:54:10 / 추천 0
그러면 포럼에서 matchbox를 검색해서 적용해보세요.
matchbox는 application 이외의 다른 디렉토리에서도 기존 ci와 동일하게 사용을 할 수가 있습니다.
그 디렉토리가 몇개던지 상관없습니다.

admin/system/application

admin4/controllers
             /models
             /views

이렇게 system은 하나로 쓰고 다른 디렉토리에서도 ci를 사용할 수 있는게 matchbox입니다.
(hmvc라는 것도 있습니다.)
변종원(웅파) / 2010/03/04 15:55:25 / 추천 0
그리고 부연설명을 하자면
양쪽(admin 과 admin4의 모델, 뷰를 서로 호출하여 사용할 수 있습니다.)
한마디로 말하자면 application의 클론이 생기는거죠.
헛발이 / 2010/03/04 16:00:31 / 추천 0

초보 입장에서 보면 유저가 접속해서 등록하는 화면만이라면... 뜯어 고치기 보단 새로 만드는건 어떤지요?
흘러가는 소스 흐름을 알고 기본소스도 있으니...matchbox나 hmvc로 구분해서 만들수 있을거 같은데요..
^^;