질문 Q #9786
[초보]라우팅질문
헛발이 2012-03-21 10:43:43
초보 질문 올립니다..

http://test.com/abc/def 를 하기 위해

abc라는 콘트롤러에
def라는 메소드(function)를 만들었습니다.

그러면 http://test.com/abc/def 를 하면 접속이 아주 잘됩니다.

그런데 재라우팅을 하고 싶습니다.



http://test.com/hij/klm 라고 하면
http://test.com/abc/def 로 라우팅이 되게 하고 싶어

아래와 같이 하였습니다.
$route['hij/klm'] = "abc/def";
$route['hij/klm/(:any)'] = "abc/def/$1";

라고 했습니다..

그래서 원했던 목적이 이뤄졌습니다. 즉

http://test.com/hij/klm -> http://test.com/abc/def 로 라우팅되었습니다.

근데 하나더 하고 싶은것이 있었습니다.

원래의 http://test.com/abc/def 로 접속을 해도 된다는것이지요..

즉 저의 질문은

http://test.com/abc/def 로 접속을 하면 라우팅이 안되게 하고싶은데

어케 해야 하는지 알려 주실수 있나요?
답변 6
#1 변종원(웅파) 2012-03-21 10:52:24
  http://test.com/abc/def <- 접속이 되는건데 질문의 요지는 
위 주소로 접근이 안되게 하고 싶다는 말씀인가요?
#2 헛발이 2012-03-21 11:00:37
네 원래의 URL로는 접속안되고 제가 설정한 라우팅으로만 접속이 되게 하고 싶어요...
하지만 라우팅으로 가르키는 곳이 원래의 URL이기 때문에 그런지 원래의 곳을 막으면
라우팅한것도 같이 안되고 그러네요.. ㅠㅠ
#3 milosz 2012-03-21 14:43:15

라우팅 할 때 필수적으로 아규먼트 하나 넘기게 해서 체크하는건 어떨까요? ㅎㅎ

#4 변종원(웅파) 2012-03-21 18:02:19
abc컨트롤러 안에서 uri segment를 체크하면 됩니다.

주소중에 /abc/def 가 있다면 다이렉트로 접근한 것이기 때문에 특정 페이지로 포워딩.

그외에는 통과.


#5 변종원(웅파) 2012-03-21 18:06:47
내부함수중에 원래 주소와 라우팅된 주소 가져오는 것이 있을겁니다.
#6 헛발이 2012-03-21 20:07:40
답변 감사합니다...

그렇군요. 라우팅에서 하는것이 아니고 별도로 처리를 해 줘야 하는거군요
감사합니다..