CI 묻고 답하기

제목 링크에서의 uri 이상증상 질문드립니다.
글쓴이 작성시각 2013/11/03 02:06:51
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 17179   RSS

안녕하세요,
CI 입문한지 며칠 안 된 초보입니다.

현재 최신버전 (2.1.0) 사용중이고 PC에서 APM 으로 테스트 중입니다.
포럼 글을 참고해서 config.php 및 database.php 설정하고, mod_rewrite로 index.php는 없앴습니다.

매뉴얼에 있는 News 튜토리얼을 해보고 있는데
너무 이상한게
링크던지 Form의 submit이던지 최초의 segment가 중복되어서 붙습니다.

가령 news의 view 페이지에서 `목록으로` 라는 버튼을 아래와 같이 만들었다면
<a href="news">목록으로</a>

실제 호출은
localhost/news/news
이런 식으로 호출을 합니다.
물론 당연히 에러가 발생하구요.

너무 오랫동안 혼자 삽질을 하다 못해
도움 부탁드립니다. ㅠㅠ


cf) 혹시 route.php 설정 문제인가 해서 원복을 해도 증상은 동일합니다.

cf) 혹시 몰라 .htaccess 파일 내용도 같이 올립니다.
<IfModule mod_rewrite.c>
    RewriteEngine On
 RewriteBase /
 RewriteCond $1 !^(index\.php|images|captcha|data|include|uploads|css|javascript|robots\.txt)
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
 
 다음글 자동으로 예약 시간에 특정 기능을 수행하게 할 수 있는... (2)
 이전글 모델 파일을 추가 했는데요. (3)

댓글

에카 / 2013/11/03 02:41:40 / 추천 0
/news 로 링크를 넣어보세요.
/ 2013/11/03 04:09:54 / 추천 0
네,, 그렇게 해봤는데 되긴 합니다.
근데 튜토리얼 내용이랑 틀려서요.

stackoverflow 같은데서도 예제를 많이 찾아봤는데 다들 링크는 앞에 '/' 가 없더라구요.

결론적으로 jQuery에서 $.ajax 선언시 url을 '/news/get_news' 이런식으로 하니
아예 경로를 못찾습니다.
/ 2013/11/03 05:19:34 / 추천 0
 아,, 죄송합니다.
ajax에서 에러나는건
ajax의 data type을 json으로 설정했는데
Controller의 생성자에서 enable_profiler 를 true로 설정해놨더니
return값에 html 태그들이 섞여서 json decoding이 안되서 그런거였구요,,

실제로 CI에서는 정상이었네요,,

에카님 답변 감사합니다~

근데 다른 예제들이나 튜토리얼에는 '/' 이 없는데,
왜 leading slash를 붙여야만 정상작동할까요?
저만 그런건가요? ㅠㅠ
에카 / 2013/11/03 14:38:58 / 추천 0
 썬님 // 이는 HTML 링크와 관련되어있습니다.
/를 붙이지 않는다면, 링크를 해야 될 목표를 도메인 다음이 아니라 현재 주소에서 마지막 슬래시 있는 부분부터 시작됩니다.
qna/view/11574/page/1로 제가 링크를 건다면, http://codeigniter-kr.org/qna/view/11574/page/qna/view/11574/page/1 로 이동되는것과 같아요.
만약 링크거는게 좀 헷갈리시다면 url헬퍼의 url_for를 이용해서 링크를 만들어보세요.
/ 2013/11/03 19:23:41 / 추천 0

에카님 답변 감사합니다~
덕분에 이해가 많이 되었습니다.