| <?xml version="1.0" encoding="EUC-KR" ?> |
| <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd"> |
| <?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?> |
| <!-- English Revision: 1.7 --> |
| |
| <!-- |
| Copyright 2003-2004 The Apache Software Foundation |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <manualpage metafile="cgi_path.xml.meta"> |
| |
| <title>CGI ȯ°æ¿¡¼ PATH_INFOÀÇ º¯È</title> |
| |
| <summary> |
| <p>¾ÆÆÄÄ¡ 1.1.1°ú ±× ÀÌÀü ¹öÀüÀÇ °æ¿ì CGI ȯ°æ¿¡¼ |
| PATH_INFO¸¦ ¸¸µå´Â ¹æ¹ýÀÌ Á÷°üÀûÀÌÁö ¾Ê°í ¾î¶² °æ¿ì ¼¹ö¸¦ |
| Á×À̱⵵ Çß´Ù. ¾ÆÆÄÄ¡ 1.2 ÀÌÈÄ ÀÌ ¹æ¹ýÀÌ º¯Çß´Ù. ±âÁ¸ÀÇ |
| ¾î¶² CGI ÇÁ·Î±×·¥µé°ú ¾à°£ÀÇ È£È¯¹®Á¦°¡ ÀÖÁö¸¸ |
| ¾ÆÆÄÄ¡ 1.2ÀÇ ÇൿÀº ¾ÆÁ÷µµ CGI/1.1 ±Ô¾àÀ» ¹ù¾î³ªÁö¾ÊÀ¸¸ç, |
| ½±°Ô CGI ½ºÅ©¸³Æ®¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù. (<a href="#compat">¾Æ·¡ |
| Âü°í</a>)</p> |
| </summary> |
| |
| <section id="prob"><title>¹®Á¦Á¡</title> |
| <p>¾ÆÆÄÄ¡ 1.1.1°ú ±× ÀÌÀü ¹öÀüÀº URL ´ë½Å ÆÄÀϸíÀ» |
| °¡Áö°í PATH_INFO¿Í SCRIPT_NAME ȯ°æº¯¼ö¸¦ ±¸ÇöÇß´Ù. ¸¹Àº |
| °æ¿ì ¿Ã¹Ù¸¥ °á°ú¸¦ ¾òÁö¸¸, ÆÄÀϽýºÅÛ °æ·Î°¡ path |
| Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù¸é À߸øµÈ °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, |
| ¼³Á¤ÆÄÀÏ¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀÌ ÀÖ´Ù¸é:</p> |
| |
| <example> |
| Alias /cgi-ralph /usr/local/httpd/cgi-bin/user.cgi/ralph |
| </example> |
| |
| <p>ÀÌ °æ¿ì <code>user.cgi</code>´Â CGI ½ºÅ©¸³Æ®ÀÌ°í, "/ralph"´Â |
| CGI¿¡ ³Ñ°ÜÁö´Â Á¤º¸´Ù. ÀÌ °æ¿ì |
| "<code>/cgi-ralph/script/</code>"·Î ¿äûÀÌ µé¾î¿À¸é PATH´Â |
| "<code>/ralph/script</code>"°¡ µÇ°í, SCRIPT_NAMEÀº |
| "<code>/cgi-</code>"°¡ µÈ´Ù. ÈÄÀÚ´Â ºÐ¸íÈ÷ À߸øµÇ¾ú´Ù. |
| ½ÉÁö¾î ¾î¶² °æ¿ì ¼¹ö°¡ Áױ⵵ ÇÑ´Ù.</p> |
| </section> |
| |
| <section id="solution"><title>ÇØ°áÃ¥</title> |
| <p>¾ÆÆÄÄ¡ 1.2 ÀÌÈÄ¿¡¼´Â URL¿¡¼ Ŭ¶óÀ̾ðÆ®°¡ Á¶Àý°¡´ÉÇÑ |
| ºÎºÐÀ» ÆÇ´ÜÇÏ¿© SCRIPT_NAME°ú PATH_INFO¸¦ ¼³Á¤ÇÑ´Ù. À§ÀÇ |
| ¿¹¿¡¼ PATH_INFO´Â "<code>/script</code>"°¡ µÇ°í, SCRIPT_NAMEÀº |
| "<code>/cgi-ralph</code>"°¡ µÈ´Ù. ÀÌ´Â ÇÕ¸®ÀûÀÌ¸ç ¼¹ö¿¡ |
| ¹®Á¦¸¦ ÀÏÀ¸Å°Áö ¾Ê´Â´Ù. ¶Ç, ÀÌÀü ¹öÀü°ú ´Þ¸® ½ºÅ©¸³Æ®¿¡¼ |
| "<code>http://$SERVER_NAME:$SERVER_PORT$SCRIPT_NAME$PATH_INFO</code>"°¡ |
| ÇöÀç ½ºÅ©¸³Æ®¸¦ °¡¸®Å°´Â URLÀÓÀ» º¸ÀåÇÒ ¼ö ÀÖ´Ù.</p> |
| |
| <p>±×·¯³ª ºÒÇàÈ÷µµ <code>Alias</code> Áö½Ã¾îÀÇ |
| "<code>/ralph</code>" Á¤º¸´Â »ç¶óÁø´Ù. ±×·¯³ª ¿ì¸®´Â |
| ÆÄÀϽýºÅÛÀ» »ç¿ëÇÏ¿© ÀÌ·± Á¤º¸¸¦ ³Ñ°ÜÁÖ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÑ |
| ¹æ¹ýÀÌ ¾Æ´Ï¸ç, À̸¦ »ç¿ëÇÏ´Â ½ºÅ©¸³Æ®´Â ÀÛµ¿ÇÒ"¸¸ÇÏÁö" |
| ¾Ê´Ù°í »ý°¢ÇÑ´Ù. ±×·¯³ª ¾ÆÆÄÄ¡ 1.2b3 ÀÌÈÄ¿¡´Â ÀÌ¿¡ ´ëÇÑ |
| <a href="#compat">ÇØ°áÃ¥</a>ÀÌ ÀÖ´Ù.</p> |
| </section> |
| |
| <section id="compat"> |
| <title>ÀÌÀü ¼¹ö¿Í ȣȯ¼º</title> |
| |
| <p>¾ÆÆÄÄ¡ ÀÌÀü ¹öÀüÀ̳ª ´Ù¸¥ ¼¹ö¿ëÀ¸·Î ¼³°èµÈ ½ºÅ©¸³Æ®´Â |
| ÀÌÀü PATH_INFO º¯¼ö°¡ Á¦°øÇß´ø Á¤º¸°¡ ÇÊ¿äÇÒ ¼ö ÀÖ´Ù. ±×·¡¼ |
| ¾ÆÆÄÄ¡ 1.2 (1.2b3 ÀÌÈÄ)´Â FILEPATH_INFO¶ó´Â º¯¼ö¸¦ ´õ ¼³Á¤ÇÑ´Ù. |
| ÀÌ È¯°æº¯¼ö´Â ¾ÆÆÄÄ¡ 1.1.1ÀÇ PATH_INFO °ªÀ» °¡Áø´Ù.</p> |
| |
| <p>½ºÅ©¸³Æ®°¡ ¾ÆÆÄÄ¡ 1.2¿Í ÀÌÀü ¹öÀü ¸ðµÎ¿¡¼ µ¿ÀÛÇÏ°ÔÇÏ·Á¸é, |
| ¸ÕÀú FILEPATH_INFO°¡ ÀÖ´ÂÁö °Ë»çÇÏ°í ÀÖ´Ù¸é ±×°ÍÀ» |
| »ç¿ëÇÑ´Ù. ¾ø´Ù¸é PATH_INFO¸¦ »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î, |
| Perl·Î´Â ´ÙÀ½°ú °°´Ù:</p> |
| |
| <example> |
| $path_info = $ENV{'FILEPATH_INFO'} || $ENV{'PATH_INFO'}; |
| </example> |
| |
| <p>ÀÌ·¸°Ô ÇÏ¸é ¸ðµç ¾ÆÆÄÄ¡¸¦ Æ÷ÇÔÇÏ¿© CGI/1.1 ±ÔÁ¤À» µû¸£´Â |
| ¸ðµç ¼¹ö¿¡¼ ½ºÅ©¸³Æ®°¡ µ¿ÀÛÇÒ ¼ö ÀÖ´Ù.</p> |
| </section> |
| </manualpage> |