CI 묻고 답하기

제목 redirect 질문드립니다.
글쓴이 혜화꽃미미 작성시각 2016/07/08 11:22:51
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 18181   RSS

/application/config/config.php에 base_url을 http://를 붙여서 http://codeigniter-kr.org 이렇게 설정을 했습니다.

 

그리고 타페이지에서 redirect('','refresh'); 이렇게 사용을 했을때!!

http//http://codeigniter-kr.org 이렇게 이동을 합니다;;;;

앞에 http//가 계속 붙길래 url_helper에 있는 redirect를 열어 보았는데

		if ( ! preg_match('#^(\w+:)?//#i', $uri))
		{
			$uri = 'http://'.site_url($uri);
		}

이 부분에서 site_url($uri)은 http://codeigniter-kr.org 이렇게 찍히기 때문에 그 앞에 http://를 다시 붙여줍니다.

결국 http://http://codeigniter-kr.org 이렇게 url을 이동하게 되어서 그런거 같은데..

 

base_url에 http://를 빼고 써주는게 맞는건가요?

아니면 base_url에 http://는 붙여주고 redirect에 위에 http://붙여주는 부분을 고치는게 맞는건가요?

 

저는 후자라고 생각하는데..

다른 분들은 어떻게 사용하시는지 궁금하네요:)

 다음글 system/libraries 에 sess_expire... (3)
 이전글 DB연결이 안되네요..ㅠㅠ (1)

댓글

변종원(웅파) / 2016/07/08 12:04:55 / 추천 0

config.php에 http 포함하여 주소가 선언되어 있고 정상작동합니다.

redirect 사용법이 틀렸습니다. 메인으로 이동하려면 공백 대신 / 주세요. 이건 ci뿐만 아니라 기본입니다. 

한대승(불의회상) / 2016/07/08 12:24:54 / 추천 0

base_url이 ssl인 경우 https:// 를 사용하게 됩니다.

redirect시 문자열이 없다면 http:// 와 같이 프로토콜을 붙여주는게 맞는것 같아요.

/ 로 보내고 싶다면 웅파님 의견대로 / 를 명시해 주는게 좋습니다.

혜화꽃미미 / 2016/07/08 13:43:44 / 추천 0

답변감사합니다^^

근데 redirect('/','refresh'); 이렇게 사용을 해도..

if(strpos(site_url($uri),'http://') !== false) {
	$uri = site_url($uri);
} else {
	$uri = 'http://'.site_url($uri);
}

http://가 앞에 하나 더 붙어서 redirect 함수는 위와 같이 수정을 해야 하지 않을까 싶네요.