제목 | URL에 한글 사용하는 방법 질문 입니다! | ||
---|---|---|---|
글쓴이 | 마PD | 작성시각 | 2015/07/30 16:59:33 |
|
|||
안녕하세요! 검색을 해봤지만 해결이 되지 않아 이렇게 따로 질문글을 올립니다. ㅠ.ㅠ 원하는 기능은 이렇습니다. test.com 으로 접속하면 메인화면 test.com/[검색단어] 으로 접속하면 검색 단어에 따르는 내용으로 페이지를 변경해서 보여줍니다. 즉, 사용자가 url에 직접 검색어를 입력하되 get방식처럼 id=[검색단어] 형식이 아니라 주소에 / 이후 바로 검색어를 넣도록 하고 싶습니다. 단, [검색단어]에는 한글, 영문, 숫자, 띄어쓰기만 사용 가능하며 그외에 특수문자-_등은 사용하지 않습니다. 이렇게 하기 위해 다음과 같은 작업들을 진행했습니다. 1. .htaccess 를 통해 url 에서 index.php 부분을 제거하였습니다. 2. routes.php 에서 다음과 같이 수정하였습니다. $route['([가-힣a-z0-9]+)'] = "main/test/$1"; $route['default_controller'] = "main"; $route['404_override'] = ''; 이렇게하자 영문과 숫자를 넣었을땐 정상 작동하였습니다. test.com/abcd test.com/1234 하지만 한글과 숫자를 사용하니 페이지를 찾을 수 없다고 나왔습니다. 그래서 검색을 해보니 config.php 파일에서 이렇게 수정하라고 되어 있더라구요. $config['permitted_uri_chars'] = '가-힣a-z 0-9~%.:_\-'; 하지만 위처럼 수정하였음에도 불구하고 페이지는 여전히 찾을 수 없다고 나옵니다. config.php 파일에는 UTF-8로 설정하였고 필요하다면 아직 제작 초기 단계라 다른걸로도 변경은 가능합니다. 이후 구현될 기능은 입력받은 값을 DB에서 검색 후 결과를 보여주는 겁니다. URL에서 한글을 사용하여 라우팅 시킬 수 있는 방법이 있을까요? |
|||
다음글 | 오라클 연동 질문좀드릴게요. (2) | ||
이전글 | 프레임워크가 갑자기 먹통.. (4) | ||
ci개밟자
/
2015/07/30 17:38:22 /
추천
0
|
마PD
/
2015/07/30 17:58:18 /
추천
0
답변 감사합니다 :)
:any 를 하지 않은 이유는, 필요에 따라 다른 페이지를 로딩해야해서 그렇습니다. [검색단어]에 쓰이지 못하는 특수문자를 이용해서.. _help _board _mail 같은 컨트롤을 만들어서 작동시켜야해서요 test.com/[검새단어] : 검색 결과 test.com/_board/1 : 1번 게시판 test.com/_mail/test : test에게 메일 이런식입니다.... 흐헝~ 한글은 힘든걸까요? ㅠㅠ |
마PD
/
2015/07/30 18:00:32 /
추천
0
....아!
$route['_mail'] = "mail"; $route['(:any)'] = "main/test/$1"; $route['default_controller'] = "main"; $route['404_override'] = ''; 이렇게하면 우선순위(?)에 따라서 _mail 인지 여부를 먼저 체크하고 그 다음으로 넘어가니까 ... 되겠네요?!? 오옹!!!!!! 감사합니다!!!!! |
마PD
/
2015/07/30 18:50:04 /
추천
0
자문자답입니다.
위 방법으로 당장의 문제 해결은 가능하였지만.. 다른 컨트롤러를 사용할때마다 라우팅 설정을 해줘야하는게 너무 번거로워서 더 검색을 해보고 (역시 영어 검색이 ㅠㅠ 구글신) 해결 방법을 찾았습니다. $route['([가-힣a-z0-9A-Z%]+)'] = "main/test/$1"; 라우팅 최상단에 이렇게 넣어주시면 url형식(?)으로 인코딩된 값들을 인식하게 되어서 띄어쓰기와 한글을 전부 인식해주네요! |
$route['(:any)'] = "main/test";
$1 에 대해선 모르겠네요. $1 은안해도 세그먼트는 받을수 있을겁니다