{"id":749,"date":"2015-12-26T12:17:00","date_gmt":"2015-12-26T03:17:00","guid":{"rendered":"http:\/\/jhp.io\/?p=749"},"modified":"2022-11-25T06:44:31","modified_gmt":"2022-11-24T21:44:31","slug":"php-ci-%ec%bd%94%eb%93%9c%ec%9d%b4%ea%b7%b8%eb%82%98%ec%9d%b4%ed%84%b0codeigniter%ec%97%90%ec%84%9c-%ed%95%9c%ea%b8%80-uri%ea%b0%80-%eb%a7%89%ed%9e%90-%eb%95%8c","status":"publish","type":"post","link":"http:\/\/jhp.io\/?p=749","title":{"rendered":"[PHP\/CI] \ucf54\ub4dc\uc774\uadf8\ub098\uc774\ud130(Codeigniter)\uc5d0\uc11c \ud55c\uae00 URI\uac00 \ub9c9\ud790 \ub54c"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">http:\/\/website.com\/posts\/search\/\uac80\uc0c9\uc5b4<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucf54\ub4dc\uc774\uadf8\ub098\uc774\ud130\uc5d0\uc11c \uac1c\ubc1c\uc744 \ud558\ub2e4 \ubcf4\uba74 \uc704\uc640 \uac19\uc774 \ud55c\uae00\ub85c \ub41c URI\ub97c \ud328\uc2a4\ud574\uc57c \ud560 \ub54c\uac00 \uc788\ub294\ub370<br>\uae30\ubcf8\uc801\uc73c\ub85c \ucf54\ub4dc\uc774\uadf8\ub098\uc774\ud130\uc5d0\uc11c\ub294 \ubcf4\uc548\uc0c1\uc758 \uc774\uc720\ub85c \uba87\uba87 \ud5c8\uc6a9\ub41c \uae00\uc790 \uc774\uc678\uc758 \uae00\uc790\ub294 \ubaa8\ub450 URI\ub85c \ub118\uae30\ub294 \uac83\uc774 \ub9c9\ud600 \uc788\ub2e4. \uadf8\ub798\uc11c \uae30\ubcf8\uc801\uc73c\ub85c \uc800\ub807\uac8c \ub118\uae30\uba74 \uc624\ub958 \ud398\uc774\uc9c0\uac00 \ub728\uac8c \ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc77c\ub2e8 \ucc98\uc74c \uc2dc\ub3c4\ud558\uba74 \uac04\ub2e8\ud558\uac8c \ud560 \uc218 \uc788\ub294 \uac83\uc740 config.php \uc5d0 permitted \uc5d0 \uac00-\ud7a3\uc744 \ucd94\uac00\uac00\ud558\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/application\/config\/config.php \uc5d0 permitted_uri_chars \ud56d\ubaa9\uc744 \ucc3e\uc544\uc11c \ucd94\uac00\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">$config[&#8216;permitted_uri_chars&#8217;] = &#8220;\uac00-\ud7a3a-z 0-9~%.:_-&#8220;;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadfc\ub370 \uc774\ub807\uac8c \ud588\ub294\ub370\ub3c4 \uc5ec\uc804\ud788 \ubcf4\uc548\uc0c1\uc758 \uc774\uc720\ub85c \uc624\ub958 \ub098\ub294 \uacbd\uc6b0\uac00 \uc788\ub294\ub370, \uc774\ub294 \ube0c\ub77c\uc6b0\uc800\uac00 URI\uc744 \uc804\uc1a1\ud560 \ub54c<br>EUC-KR\ub85c \uc804\uc1a1\ud558\ub294 \uacbd\uc6b0 \uadf8\ub807\uac8c \ub41c\ub2e4. \ub9cc\uc57d CI\ub97c EUC-KR\ub85c \uc791\uc131\ud558\uace0 \uc788\ub2e4\uba74 \ubcc4 \ubb38\uc81c \uc5c6\uc9c0\ub9cc<br>UTF-8\ub85c \uc791\uc131\ud558\ub294 \uacbd\uc6b0 \ub610 \uace8\uce58\uc544\ud504\uac8c \ub41c\ub2e4(\ubcf8\ub798\ub77c\uba74 \uc774\ub807\uac8c \uc9dc\ub294\uac8c \ub9de\ub2e4.) \uadf8\ub807\ub2e4\uace0 \uace0\uac1d\ud55c\ud14c \ube0c\ub77c\uc6b0\uc800 \uc124\uc815\ubc14\uafb8\ub77c\uace0 \ud560 \uc218\ub3c4 \uc5c6\uace0\u2026<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud504\ub85c\uc81d\ud2b8 \uc804\uccb4\ub97c UTF-8\uc744 EUC-KR\ub85c \ubc14\uafb8\ub294 \uac83\ubcf4\ub2e8 \ub2e4\uc74c\uacfc \uac19\uc774 \ud544\uc694\ud55c \ubd80\ubd84\ub9cc \ubcc0\ud658\uc2dc\ucf1c\uc8fc\uba74 \ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/system\/core\/URI.php \ub97c \uc5f4\uc5b4\uc11c function _filter_url\uc744 \ucc3e\uc544 \ub2e4\uc74c \uae00\uc528 \uad75\uc740 \ubd80\ubd84\uc744 \ucd94\uac00\ud55c\ub2e4. (CI 3\uc774\uc0c1 \ubc84\uc804\uc740 filter_url \uc774\ub2e4)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function _filter_uri($str)\n{\n    $uri_encode = mb_detect_encoding($str, 'UTF-8, EUC-KR, ISO-8859-1');\n    if($uri_encode != 'UTF-8' &amp;&amp; $uri_encode !== false)  {\n        $str = mb_convert_encoding($str,\"utf-8\",$uri_encode);\n    }\n\n    if ($str != '' &amp;&amp; $this-&gt;config-&gt;item('permitted_uri_chars') != '' &amp;&amp; $this-&gt;config-&gt;item('enable_query_strings') == FALSE)\n    {\n        \/\/ preg_quote() in PHP 5.3 escapes -, so the str_replace() and addition of - to preg_quote() is to maintain backwards\n        \/\/ compatibility as many are unaware of how characters in the permitted_uri_chars will be parsed as a regex pattern\n        if ( ! preg_match(\"|^&#91;\".str_replace(array('\\\\-', '\\-'), '-', preg_quote($this-&gt;config-&gt;item('permitted_uri_chars'), '-')).\"]+$|i\", $str))\n        {\n            show_error('The URI you submitted has disallowed characters.', 400);\n        }\n    }\n\n    \/\/ Convert programatic characters to entities\n    $bad    = array('$',        '(',        ')',        '%28',        '%29');\n    $good    = array('&amp;#36;',    '&amp;#40;',    '&amp;#41;',    '&amp;#40;',    '&amp;#41;');\n\n    return str_replace($bad, $good, $str);\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc704 \uc18c\uc2a4\ub294 \ub2f9\uc5f0\ud788 UTF-8 \uc774\uc678\uc758 \uc778\ucf54\ub529 \uae00\uc790\uac00 \ub4e4\uc5b4\uc624\uba74 UTF-8\ub85c \ubcc0\ud658\ud6c4 \uc0ac\uc6a9\ud558\uaca0\ub2e4\ub294 \uac83\uc774\ub2e4. \uc774\ub807\uac8c\ud558\uba74 CI\uc5d0\uc11c \uac00-\ud7a3\uc744 \uc815\ud655\ud558\uac8c \ud310\ubcc4\ud558\uc5ec \ud55c\uae00\ub3c4 \ubb34\ud574\ud55c \ubb38\uc790\ub85c \uc778\uc2dd\ud558\uace0 \ud1b5\uacfc\uc2dc\ucf1c \uc900\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PS \uac70\uc758 \ubc18\ub144 \ub9cc\uc5d0 \ud3ec\uc2a4\ud305\uc774\ub77c\ub2c8\u2026<\/p>\n","protected":false},"excerpt":{"rendered":"<p>http:\/\/website.com\/posts\/search\/\uac80\uc0c9\uc5b4 \ucf54\ub4dc\uc774\uadf8\ub098\uc774\ud130\uc5d0\uc11c \uac1c\ubc1c\uc744 \ud558\ub2e4 \ubcf4\uba74 \uc704\uc640 \uac19\uc774 \ud55c\uae00\ub85c \ub41c URI\ub97c \ud328\uc2a4\ud574\uc57c \ud560 \ub54c\uac00 \uc788\ub294\ub370\uae30\ubcf8\uc801\uc73c\ub85c \ucf54\ub4dc\uc774\uadf8\ub098\uc774\ud130\uc5d0\uc11c\ub294 \ubcf4\uc548\uc0c1\uc758 \uc774\uc720\ub85c \uba87\uba87 \ud5c8\uc6a9\ub41c \uae00\uc790 \uc774\uc678\uc758 \uae00\uc790\ub294 \ubaa8\ub450 URI\ub85c \ub118\uae30\ub294 \uac83\uc774 \ub9c9\ud600 \uc788\ub2e4. \uadf8\ub798\uc11c \uae30\ubcf8\uc801\uc73c\ub85c \uc800\ub807\uac8c \ub118\uae30\uba74 \uc624\ub958 \ud398\uc774\uc9c0\uac00 \ub728\uac8c \ub41c\ub2e4. \uc77c\ub2e8 \ucc98\uc74c \uc2dc\ub3c4\ud558\uba74 \uac04\ub2e8\ud558\uac8c \ud560 \uc218 \uc788\ub294 \uac83\uc740 config.php \uc5d0 permitted \uc5d0 \uac00-\ud7a3\uc744 \ucd94\uac00\uac00\ud558\ub294 \uac83\uc774\ub2e4. \/application\/config\/config.php \uc5d0 permitted_uri_chars \ud56d\ubaa9\uc744 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,16],"tags":[],"class_list":["post-749","post","type-post","status-publish","format-standard","hentry","category-php-mysql","category-programming"],"_links":{"self":[{"href":"http:\/\/jhp.io\/index.php?rest_route=\/wp\/v2\/posts\/749","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/jhp.io\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/jhp.io\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/jhp.io\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/jhp.io\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=749"}],"version-history":[{"count":1,"href":"http:\/\/jhp.io\/index.php?rest_route=\/wp\/v2\/posts\/749\/revisions"}],"predecessor-version":[{"id":750,"href":"http:\/\/jhp.io\/index.php?rest_route=\/wp\/v2\/posts\/749\/revisions\/750"}],"wp:attachment":[{"href":"http:\/\/jhp.io\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=749"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/jhp.io\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=749"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/jhp.io\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=749"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}