만들면서 배우는 CodeIgniter Q&A

제목 3쇄, 118쪽, 그림4-9, 검색어 관련 문의 드립니다.
글쓴이 사랑나눔 작성시각 2017/03/04 21:37:30
댓글 : 11 추천 : 0 스크랩 : 0 조회수 : 13810   RSS

예제로 주신 샘플 db 를 활용하여 검색을 따라하고 있습니다.

그리고, 특정 단어 '녕' 과 '입' 이 들어간 단어는 검색이 되지 않고,

객체 없음을 발생합니다.

왜 그런지 궁금합니다.

 

아래는 호기심에 이리저리 점검해본 결과 입니다.

 

 

 다음글 3쇄 82쪽 내용 추가 건의합니다. (검색 관련) (1)
 이전글 게시판예제 소스에 나오는 검색소스는 1개의 글만 검색이... (7)

댓글

변종원(웅파) / 2017/03/05 11:01:58 / 추천 0
아래 댓글에 오타였다고 올리셔서 따로 글 작성하지 않겠습니다. ^^
사랑나눔 / 2017/03/05 12:49:12 / 추천 0

웅파님, 검색 결과의 페이징 부분을 말씀 드렸던 것이고요,

"입"과 "녕"이라는 글자가 포함되면 "객체없음!"이 발생하는 문제는 아직 해결되지 않았습니다.

http://localhost/bbs/board/lists/ci_board/q/녕/page/1

http://localhost/bbs/board/lists/ci_board/q/입/page/1

kaido / 2017/03/06 09:18:40 / 추천 1

2가지 확인해보세요.

appliction/config/config.php ​

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-()@!+=';
 
이렇게 수정
 
$config['permitted_uri_chars'] = '가-힣 a-z 0-9~%.:_\-()@!+=';

 

 

 

.htaccess 파일에 index 죽이기 관련 해당 룰을 이렇게 변경해 주세요.
특정 php 버전과 .htaccess 의 rewriterule 이 맞지 않아서 나오는 문제 가능성이 높습니다.

RewriteRule !index\.php index.php [NC,L]

 

사랑나눔 / 2017/03/06 09:51:59 / 추천 0

kaido 님 말씀 처럼,

수정하고 아파치 재시작해서 다시 확인해 봤습니다.

하지만, 계속 객체없음으로 나타납니다.

왜 "객체없음"이라는 메세지가 생성되는지 고민고민 ...

 

그리고, 잘 되던 목록보기가 객체없음으로 표시 됩니다.

http://localhost/bbs/board/lists/ci_board/

기존 RewriteRule ^(.*)$ /bbs/index.php/$1 [L] 로 처리하여 index.php 를 생략했던 부분이였지요.

지상 / 2017/03/06 10:49:04 / 추천 1

저도 이것저것 테스트 해보다가 동일한 증상이 발생하구요.

'테스트'라는 단어를 쳐보다가 발견했는데, 혹시 '테'자도 똑같은 현상이 발생하시나요?

 

한대승(불의회상) / 2017/03/06 10:57:29 / 추천 1
CI에서 한글은 파라메터로 넘기지 않고 get 방식으로 넘기는것이 제일 좋은 해결책 입니다.
사랑나눔 / 2017/03/06 11:30:02 / 추천 0

지상님 말씀처럼 "테" 자도 "객체없음" 발생됩니다.

한대승님 말씀처럼 한글 파라메터는 좋지 않은 방법인듯 합니다.

혹시나 하는 마음에 계속 정보를 찾고 씨름했으나, 

이제는 깔끔하게 방향 전환 해야지요...

kaido / 2017/03/06 12:07:27 / 추천 0

index.php 를 넣어서 검색 해보시고, 동일한 문제가 발생 하지 않는 다면 rewrite 문제입니다.

/bbs/board...  ==>  index.php/bbs/board... 으로 테스트.

사랑나눔 / 2017/03/06 12:19:13 / 추천 0

kaido 님, 우선 감사합니다.

계속 헤메고 있다가 http://www.codeigniter-kr.org/bbs/view/etc_qna?idx=16871

위의 글을 읽고 해결 하였습니다.

우선, index.php 를 url 에 추가하여 처리하면 "입", "녕", "테" 등의 한글 잘 검색하고요.

덧붙여 index.php를 줄여서 작업하는 경우는 .htaccess 에서,

RewriteRule !index\.php /bbs/index.php/$1 [NC,L]

요렇게 작업하시면, index.php를 생략한 상태에서도 잘 검색 됩니다.

application/config/config.php 에서

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; 에다가 '가-힣'

을 추가하지 않아도 잘 됩니다.

 

RewriteRule !index\.php /bbs/index.php/$1 [NC,L]

을 대략 추측해 본다면,

url 에서 index.php 가 없다면 기본 도메인 뒤에다가 "/bbs/index.php/파라미터" 로 처리하라는 내용일 것 같습니다.

[NC, L] 은 의미가 무엇인지 궁금합니다^^

변종원(웅파) / 2017/03/06 15:38:39 / 추천 0
사랑나눔/ http://kwonnam.pe.kr/wiki/apache/mod_rewrite 참고하세요.
사랑나눔 / 2017/03/06 16:21:09 / 추천 0

웅파님, 감사합니다.

[L] 조건 블럭의 끝이고
[NC] 정규식의 대소문자 구분 안함

조금은 이해 했습니다^^