An Error Was Encountered
The URI you submitted has disallowed characters.
제목 | [초보]uri를 바꿔서 사용해 보기.. | ||
---|---|---|---|
글쓴이 | 헛발이 | 작성시각 | 2010/03/23 15:44:59 |
|
|||
config.php에서요..$config['enable_query_strings'] = TRUE; $config['controller_trigger'] = 'c'; $config['function_trigger'] = 'm'; $config['directory_trigger'] = 'd'; // experimental not currently in use이렇게 TRUE로 변경하고 URL에서 http://도메인/모듈명/콘트롤러/메소드?id=1 이렇게 하면 안되나요? 모듈명, 콘트롤명, 메소드명은 그대로 사용하고 id부터만 id=1 이런식으로 하고 싶은데요... 그냥 TRUE만으로는 안되나요 ? |
|||
다음글 | 죄송한데 질문하나만 드릴께요~ (2) | ||
이전글 | load->view 할때 다른 모듈에서 가져오기 (5) | ||
변종원(웅파)
/
2010/03/23 16:09:01 /
추천
0
|
헛발이
/
2010/03/23 16:51:47 /
추천
0
아 그렇군요... 감사합니다..
|
헛발이
/
2010/03/23 18:15:25 /
추천
0
config에서 이렇게만 해선 안되나봐요?
$config['uri_protocol'] = "REQUEST_URI"; 일단 이렇게만 해서 http://도메인/test/test/?id=1 이렇게 해도 이런 에라가 나는데요... An Error Was EncounteredThe URI you submitted has disallowed characters. |
변종원(웅파)
/
2010/03/23 21:09:09 /
추천
0
헛발이님 물음표때문입니다. |
헛발이
/
2010/03/23 21:30:50 /
추천
0
아하~
|
앤드그리고
/
2010/03/24 14:34:45 /
추천
0
안녕하세요. 혹시나해서 덧붙입니다.
segment 와 querystring 을 같이 사용할 경우, querystring 에 인자가 하나만 있을경우 404 에러가 발생하는 문제에 대해서 덧붙입니다. URI 클래스에 _fetch_uri_string() 라는 메소드가 있는데 이 메소드를 약간 수정해서 사용하면 해당 문제를 해결할 수 있습니다. MY_URI.php /** * Get the URI String * * @access private * @return string */ function _fetch_uri_string() { if (strtoupper($this->config->item('uri_protocol')) == 'AUTO') { // Is there a PATH_INFO variable? // Note: some servers seem to have trouble with getenv() so we'll test it two ways $path = (isset($_SERVER['PATH_INFO'])) ? $_SERVER['PATH_INFO'] : @getenv('PATH_INFO'); if (trim($path, '/') != '' && $path != "/".SELF) { $this->uri_string = $path; return; } // No PATH_INFO?... What about QUERY_STRING? $path = (isset($_SERVER['QUERY_STRING'])) ? $_SERVER['QUERY_STRING'] : @getenv('QUERY_STRING'); if (trim($path, '/') != '') { $this->uri_string = $path; return; } // No QUERY_STRING?... Maybe the ORIG_PATH_INFO variable exists? $path = (isset($_SERVER['ORIG_PATH_INFO'])) ? $_SERVER['ORIG_PATH_INFO'] : @getenv('ORIG_PATH_INFO'); if (trim($path, '/') != '' && $path != "/".SELF) { // remove path and script information so we have good URI data $this->uri_string = str_replace($_SERVER['SCRIPT_NAME'], '', $path); return; } // url에 인자가 하나만 있을경우 컨트롤러를 제대로 찾지 못하는 문제 때문에, 위치를 이동합니다. // If the URL has a question mark then it's simplest to just // build the URI string from the zero index of the $_GET array. // This avoids having to deal with $_SERVER variables, which // can be unreliable in some environments if (is_array($_GET) && count($_GET) == 1 && trim(key($_GET), '/') != '') { $this->uri_string = key($_GET); return; } // We've exhausted all our options... $this->uri_string = ''; } else { $uri = strtoupper($this->config->item('uri_protocol')); if ($uri == 'REQUEST_URI') { $this->uri_string = $this->_parse_request_uri(); return; } $this->uri_string = (isset($_SERVER[$uri])) ? $_SERVER[$uri] : @getenv($uri); } // If the URI contains only a slash we'll kill it if ($this->uri_string == '/') { $this->uri_string = ''; } } |
변종원(웅파)
/
2010/03/24 15:48:54 /
추천
0
조영운/ 네 확장해서 처리하셨군요. 저도 비슷한 문제를 겪어서...
전 주소처리 함수를 따로 하나 만들어서 사용했습니다. 그안에서 처리를 했구요. ^^ |
tip게시판에 보시면 편법으로 사용할 수 있게 mycaster님이 올리신게 최근에 있습니다.
아니면 tip게시판에서 제 닉으로 검색해서 주소관련 글 참고하셔서 적용하시면 됩니다.
http://도메인/모듈/컨트롤러/?method=메소드&var=변수&sp=1 형식입니다.