| 제목 | CI에서 URl 경로질문 | ||
|---|---|---|---|
| 글쓴이 | 케케케 | 작성시각 | 2013/02/11 20:04:23 | 
|  | |||
| localhost/auth/login 에서 뭐 로그인을 했다고 치면위에 경로가 바뀔꺼 아니에요 넘어간 페이지로.... 근데 페이지가 submit될때마다 localhost/?auth/login 이런식으로 자꾸 ?가 붙어서 작업이 진행이 안되는데 어떤것 때문일까요? | |||
| 다음글 | session 관련 질문 드립니다 (3) | ||
| 이전글 | 제 사이트공격한 해킹툴 정보입니다. (2) | ||
| 
                                변종원(웅파)
                                /
                                2013/02/12 08:10:23 /
                                추천
                                0
                             | 
| 
                                케케케
                                /
                                2013/02/12 11:05:31 /
                                추천
                                0
                             
                                웅파님 말씀대로 해봤는데 흐엉 자꾸 ?가 붙으면서 index 페이지로 가버리네요...ㅠㅠ
                             | 
| 
                                변종원(웅파)
                                /
                                2013/02/12 11:07:27 /
                                추천
                                0
                             
                                제 경우는 request_uri가 저렇게 나오니까 위와 같이 처리한거구요 index.php에서 $_SERVER변수 찍어보고 그 상황에 맞게 처리하세요 | 
| 
                                Artz
                                /
                                2013/02/14 15:17:23 /
                                추천
                                0
                             
                                query string을 사용할때, url helper의 redirect 함수를 사용할 경우 발생하는 문제입니다. url helper의 소스(/system/helpers/url_helper.php)를 살펴보면, redirect()에서 site_url()을 호출하고, site_url()에서 config class의 site_url()을 호출하는 것을 알 수 있습니다. config의 site_url 함수는 다음과 같습니다. 
function site_url($uri = '')
{
    if ($uri == '')
    {
        return $this->slash_item('base_url').$this->item('index_page');
    }
    if ($this->item('enable_query_strings') == FALSE)
    {
        $suffix = ($this->item('url_suffix') == FALSE) ? '' : $this->item('url_suffix');
        return $this->slash_item('base_url').$this->slash_item('index_page').$this->_uri_string($uri).$suffix;
    }
    else
    {
        return $this->slash_item('base_url').$this->item('index_page').'?'.$this->_uri_string($uri);
    }
}위 함수에서 query string 사용 시의 처리 부분을 살펴보면, Query String을 처리하기 위해 자동으로 '?'를 붙여버리는걸 알 수 있습니다. 이 부분을 수정하시거나, 직접 구현한 redirection 함수를 사용하시면 될 것 같습니다. | 
우선 config.php의 $config['uri_protocol'] 값을 바꾸면서 테스트 해보시고 동일하다면
index.php의 첫 라인에 다음과 같이 처리하세요.