만들면서 배우는 CodeIgniter Q&A

제목 redirect 질문입니다.
글쓴이 스미 작성시각 2014/09/11 16:52:34
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 9968   RSS
63page의
redirect('/todo/lists/');
사용시 
http://codeigniter.kimwork.com/kimwork/todo/write/
정상접속되나

http://codeigniter.kimwork.com/kimwork/?/todo/write/
으로 접근시

default_controller 설정값으로 접근됩니다. 
?이 안찍히게 하거나 ?을 인식하는 방법이 없을까요?
 
RewriteEngine On
RewriteBase /kimwork/
RewriteCond $1 !^(index\.php|robots\.txt|data|include|skin)
RewriteRule ^(.*)$ /index.php/$1 [L]

이렇게 설정되어있습니다.
태그 redirect
 다음글 ajax jquery 부분 질문있습니다 (5)
 이전글 로그인 확인할때 왜 @ 붙이나요 (2)

댓글

변종원(웅파) / 2014/09/12 00:14:58 / 추천 0
주소에 뭐가 들어갔다고 제거하거나 하는 것은 위험한 발상입니다.
틀린 주소는 404 페이지가 나오도록 하거나
디폴트 페이지로 이동하는게 맞습니다.
스미 / 2014/09/12 09:02:39 / 추천 0
[재질문]주소인식을 못하는 이유는 무엇인가요?

http://codeigniter.kimwork.com/kimwork/?/todo/write/
에서는 get 으로 매개변수가 /todo/write/ 으로 되어버립니다. 혹 대처방법이나 그런것이있을까요?

검색해봐도 비슷한 증상이나 경우가 없어서 해결기 힘드네요
변종원(웅파) / 2014/09/12 16:51:33 / 추천 0
주소에 ? 가 들어가서 오작동 하게 되는 것 자체가 정상적이라는 거죠.
그걸 프로그램에서 체크해서 없애고 이동하게 해줄 수는 있지만 주소라는게 개발자가 셋팅한 대로 움직이는 것이고
긴 주소를 직접 타이핑해서 들어오는 경우는 거의 없습니다.

/컨트롤러/메소드/?/변수1/변수2
/컨트롤러/메소드/변수1/?/변수2
/컨트롤러/메소드/변수1/변수2/?
/컨트롤러/?/메소드/변수1/변수2
/컨트롤러/?/메소드/?/변수1/변수2

이런 케이스를 모두 처리해줄건가요? 사용자의 잘못된 주소 타이핑은 에러 페이지로 가는게 맞다는 이야기입니다.

정규표현식으로 해줄 수는 있지만 저런 모든 케이스를 대응하려면.... ^^;;;;
변종원(웅파) / 2014/09/12 16:55:17 / 추천 0
config/config.php 에서 아래 부분을 PATH_INFO로 바꾸고 테스트해보세요.

/*
|--------------------------------------------------------------------------
| URI PROTOCOL
|--------------------------------------------------------------------------
|
| This item determines which server global should be used to retrieve the
| URI string.  The default setting of 'AUTO' works for most servers.
| If your links do not seem to work, try one of the other delicious flavors:
|
| 'AUTO'            Default - auto detects
| 'PATH_INFO'        Uses the PATH_INFO
| 'QUERY_STRING'    Uses the QUERY_STRING
| 'REQUEST_URI'        Uses the REQUEST_URI
| 'ORIG_PATH_INFO'    Uses the ORIG_PATH_INFO
|
*/
$config['uri_protocol']    = 'AUTO';