안녕하세요.
다름 아니라 URL 주소에 관해 질문 드립니다.
현재 uri segment를 사용해서 db를 불러오게 만들어 놨는데,
이렇게 사용하고 있습니다.
http://localhost/study/main/address/a
에서 address는 테이블명으로 사용하고 있고, a는 해당 테이블 내부에 a/b로 나뉜 값을 검색 조건으로 넣었습니다.
그래서 위 주소가 모두 표시되어야 하며, 사용자가 아래 허용된 주소 외 다른 주소, 예를들면
http://localhost/study/main/address // 이렇게 맨 뒤를 빼고 입력 한다던가,
http://localhost/study/main/comment/a // 이렇게 다른 주소를 넣었을 때,
오류를 뿜지 말고 지정된 주소로 돌아가게 하려고 합니다.
어떤 부분을 만져야 할까요?
지정된 주소와 다른 주소를 어떻게 구분하나요?
study/main/address/a 에서
segment[1] = main
segment[2] = address 또는 mail
segment[3] = a 또는 b
이게 허용가능한 주소인데, 이거 제외 나머지 주소를 넣으면 강제로 redirect 하려고 합니다.
컨트롤러에 어떤 부분에 넣으면 되나요?
index 부분에 넣으면 될까요?
감사합니다! 덕분에 일단 segment[2] 까지는 해결 했습니다.
if (method_exists($this, $method)) {
$this -> {"{$method}"}();
} else {
redirect('/main/address/a','refresh');
}
그런데 여기서 마지막 segment[3] 도 _remap 에서 변수 처리 될까ᄋᄋ요?
segment[3] 부분은 수행되는 함수의 첫번째 부분에 아래 구문을 붙여 해결 했습니다.
$seg3 = $this -> uri -> segment(3);
if ( !($seg3 == 'a' or $seg3 == 'b') ) {
redirect('/main/address/a','refresh');
}
혹시 더 좋은 방법이 있을까요?