Apache HTTP Server Version 2.0
ÀÌ ¹®¼´Â ¿äûÀÇ URLÀ» °¡Áö°í ¾ÆÆÄÄ¡°¡ ¾î¶»°Ô ¼ºñ½ºÇÒ ÆÄÀÏÀÇ ÆÄÀϽýºÅÛ»ó À§Ä¡¸¦ ã´ÂÁö ¼³¸íÇÑ´Ù.
°ü·ÃµÈ ¸ðµâ | °ü·ÃµÈ Áö½Ã¾î |
---|---|
¿äûÀ» ¹ÞÀº ¾ÆÆÄÄ¡´Â ¾î¶² ÆÄÀÏÀ» ¼ºñ½ºÇÒÁö °áÁ¤ÇϱâÀ§ÇØ ±âº»ÀûÀ¸·Î ¿äûÀÇ URL-°æ·Î(URL¿¡¼ È£½ºÆ®¸í°ú Æ÷Æ® µÚ¿¡ ³ª¿À´Â ºÎºÐ)¸¦ ¼³Á¤ÆÄÀÏ¿¡¼ ÁöÁ¤ÇÑ DocumentRoot
µÚ¿¡ ºÙÀδÙ. ±×·¡¼ DocumentRoot
¾Æ·¡ÀÖ´Â ÆÄÀÏ°ú µð·ºÅ丮µéÀº À¥¿¡¼ º¸°ÔµÉ ±âº»ÀûÀÎ ³»¿ëÀÌ´Ù.
Á¾Á¾ ÆÄÀϽýºÅÛ¿¡¼ DocumentRoot
¾Æ·¡ ÀÖÁö¾ÊÀº ºÎºÐÀ» À¥¿¡¼ Á¢±ÙÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ¾ÆÆÄÄ¡´Â ÀÌ °æ¿ì ¿©·¯°¡Áö ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. À¯´Ð½º ½Ã½ºÅÛ¿¡¼ ½Éº¼¸µÅ©¸¦ »ç¿ëÇÏ¿© ÆÄÀϽýºÅÛÀÇ ´Ù¸¥ ºÎºÐÀ» DocumentRoot
¾Æ·¡¿¡ µÑ ¼ö ÀÖ´Ù. º¸¾ÈÀ» À§ÇØ ¾ÆÆÄÄ¡´Â ÇØ´ç µð·ºÅ丮ÀÇ Options
¼³Á¤¿¡ FollowSymLinks
³ª SymLinksIfOwnerMatch
°¡ ÀÖ´Â °æ¿ì¿¡¸¸ ½Éº¼¸µÅ©¸¦ µû¶ó°£´Ù.
¶Ç, Alias
Áö½Ã¾î´Â ÆÄÀϽýºÅÛÀÇ Æ¯Á¤ ºÎºÐÀ» À¥°ø°£¿¡ ´ëÀÀÇÑ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°´Ù¸é
Alias /docs /var/web
URL http://www.example.com/docs/dir/file.html
˼ /var/web/dir/file.html
À» °¡Áö°í ¼ºñ½ºÇÑ´Ù. ÁöÁ¤ÇÑ °æ·Î¿¡ ÀÖ´Â ¸ðµç ³»¿ëÀ» CGI ½ºÅ©¸³Æ®·Î Ãë±ÞÇÏ´Â °ÍÀ» Á¦¿ÜÇÏ°í´Â ScriptAlias
Áö½Ã¾îµµ °°Àº ÀÏÀ» ÇÑ´Ù.
AliasMatch
¿Í ScriptAliasMatch
Áö½Ã¾îÀÇ °·ÂÇÑ Á¤±ÔÇ¥Çö½Ä±â¹Ý ´ëÀÀ°ú ´ëÄ¡¸¦ »ç¿ëÇÏ¿© ´õ À¯¿¬ÇÑ ¼³Á¤ÀÌ °¡´ÉÇÏ´Ù. ¿¹¸¦ µé¾î,
ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+) /home/$1/cgi-bin/$2
´Â http://example.com/~user/cgi-bin/script.cgi
·ÎÀÇ ¿äûÀ» °æ·Î /home/user/cgi-bin/script.cgi
·Î ´ëÀÀÇÏ°í, ÇØ´ç ÆÄÀÏÀ» CGI ½ºÅ©¸³Æ®·Î Ãë±ÞÇÑ´Ù.
À¯´Ð½º ½Ã½ºÅÛÀº ÀüÅëÀûÀ¸·Î ƯÁ¤ »ç¿ëÀÚ userÀÇ È¨µð·ºÅ丮¸¦ ~user/
·Î ÁöĪÇÑ´Ù. mod_userdir
¸ðµâÀº ÀÌ °³³äÀ» À¥¿¡±îÁö È®ÀåÇÏ¿©, ´ÙÀ½°ú °°Àº URLÀ» °¡Áö°í °¢ »ç¿ëÀÚ È¨µð·ºÅ丮 ¾È¿¡ ÀÖ´Â ÆÄÀÏÀ» ¼ºñ½ºÇÑ´Ù.
http://www.example.com/~user/file.html
º¸¾È»ó À¥¿¡¼ »ç¿ëÀÚ È¨µð·ºÅ丮·Î Á÷Á¢ Á¢±ÙÇÒ ¼ö ÀÖÀ¸¸é ¾ÈµÈ´Ù. ±×·¡¼ UserDir
Áö½Ã¾î´Â »ç¿ëÀÚ È¨µð·ºÅ丮¿¡¼ À¥¿ë ÆÄÀϵéÀÌ ÀÖÀ» µð·ºÅ丮¸¦ ÁöÁ¤ÇÑ´Ù. ±âº» ¼³Á¤ Userdir public_html
À» »ç¿ëÇÏ°í /home/user/
°¡ /etc/passwd
¿¡ ÁöÁ¤µÈ »ç¿ëÀÚ È¨µð·ºÅ丮¶ó¸é, À§ÀÇ URLÀº ÆÄÀÏ /home/user/public_html/file.html
¿¡ ´ëÀÀÇÑ´Ù.
¶Ç, Userdir
Áö½Ã¾î´Â /etc/passwd
¿¡ Ȩµð·ºÅ丮ÀÇ À§Ä¡°¡ ÀúÀåµÇÁö¾Ê´Â ½Ã½ºÅÛÀ» À§ÇØ ¿©·¯ ´Ù¸¥ ÇüŸ¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¾î¶² »ç¶÷Àº (º¸Åë À¥¿¡¼ %7e
·Î ÀÎÄÚµùµÇ´Â) "~" ±âÈ£°¡ ÀÌ»óÇÏ¿© ´Ù¸¥ ¹æ½ÄÀ¸·Î »ç¿ëÀÚ µð·ºÅ丮¸¦ ³ªÅ¸³»°í ½Í¾îÇÑ´Ù. ÀÌ ±â´ÉÀº mod_userdirÀÌ Á¦°øÇÏÁö¾Ê´Â´Ù. ±×·¯³ª »ç¿ëÀÚ È¨µð·ºÅ丮°¡ ±ÔÄ¢ÀûÀÎ ¹æ¹ýÀ¸·Î ±¸¼ºµÇÀÖ´Ù¸é, AliasMatch
Áö½Ã¾î¸¦ »ç¿ëÇÏ¿© ¿øÇÏ´Â È¿°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ AliasMatch
Áö½Ã¾î¸¦ »ç¿ëÇϸé http://www.example.com/upages/user/file.html
ÀÌ /home/user/public_html/file.html
¿¡ ´ëÀÀÇÑ´Ù:
AliasMatch ^/upages/([a-zA-Z0-9]+)/?(.*) /home/$1/public_html/$2
¾Õ¿¡¼ ¼³¸íÇÑ ¼³Á¤ Áö½Ã¾îµéÀº ¾ÆÆÄÄ¡°¡ ÆÄÀϽýºÅÛÀÇ Æ¯Á¤ Àå¼Ò¿¡ ÀÖ´Â ³»¿ëÀ» Ŭ¶óÀ̾ðÆ®¿¡°Ô º¸³»°Ô ¸¸µç´Ù. ±×·¯³ª ¶§¶§·Î ¿äûÇÑ ³»¿ëÀÌ ´Ù¸¥ URL¿¡ ÀÖ´Ù°í Ŭ¶óÀ̾ðÆ®¿¡°Ô ¾Ë·ÁÁÖ¾î, Ŭ¶óÀ̾ðÆ®°¡ »õ·Î ±× URLÀ» ¿äûÇϵµ·Ï ¸¸µå´Â °ÍÀÌ ÁÁÀ» ¶§°¡ ÀÖ´Ù. À̸¦ ¸®´ÙÀÌ·º¼Ç(redirection)À̶ó°í Çϸç, Redirect
Áö½Ã¾î¸¦ »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î, DocumentRoot
¾Æ·¡ /foo/
µð·ºÅ丮ÀÇ ³»¿ëÀ» »õ·Î /bar/
µð·ºÅ丮·Î ¿Å°å´Ù¸é ´ÙÀ½°ú °°ÀÌ Å¬¶óÀ̾ðÆ®°¡ »õ·Î¿î À§Ä¡¸¦ ¿äûÇϵµ·Ï ÇÑ´Ù:
Redirect permanent /foo/ http://www.example.com/bar/
±×·¯¸é www.example.com
¼¹öÀÇ /foo/
·Î ½ÃÀÛÇÏ´Â URL-°æ·Î´Â /foo/
¸¦ /bar/
·Î ¹Ù²Û URL·Î ¸®´ÙÀÌ·º¼ÇµÈ´Ù. Ŭ¶óÀ̾ðÆ®¸¦ ¿ø·¡ ¼¹ö¿Ü¿¡ ¾î¶² ´Ù¸¥ ¼¹ö·Îµµ ¸®´ÙÀÌ·º¼ÇÇÒ ¼ö ÀÖ´Ù.
¶Ç, ¾ÆÆÄÄ¡´Â ´õ º¹ÀâÇÑ ÀçÀÛ¼º ¹®Á¦¸¦ À§ÇØ RedirectMatch
Áö½Ã¾î¸¦ Á¦°øÇÑ´Ù. ¿¹¸¦ µé¾î, ´Ù¸¥ ¿äûÀº ±×´ë·Î µÎ°í »çÀÌÆ® ȨÆäÀÌÁö¿¡ ´ëÇÑ ¿äû¸¸À» ´Ù¸¥ »çÀÌÆ®·Î ¸®´ÙÀÌ·º¼ÇÇÏ·Á¸é:
RedirectMatch permanent ^/$ http://www.example.com/startpage.html
Àӽ÷Π»çÀÌÆ®ÀÇ ¸ðµç ÆäÀÌÁö¸¦ ´Ù¸¥ »çÀÌÆ®ÀÇ Æ¯Á¤ ÆäÀÌÁö·Î ¸®´ÙÀÌ·º¼ÇÇÏ·Á¸é:
RedirectMatch temp .* http://othersite.example.com/startpage.html
¾ÆÆÄÄ¡´Â ´Ù¸¥ ¼¹ö¿¡ ÀÖ´Â ¹®¼¸¦ ¼¹öÀÇ URL °ø°£À¸·Î °¡Á®¿Ã ¼ö ÀÖ´Ù. ÀÌ °æ¿ì À¥¼¹ö°¡ ¿ø°Ý ¼¹ö¿¡¼ ¹®¼¸¦ °¡Á®¿Í¼ Ŭ¶óÀ̾ðÆ®¿¡°Ô Àü´ÞÇÏ´Â ÇÁ·Ï½Ã ¼¹ö¿Í °°ÀÌ µ¿ÀÛÇϱ⶧¹®¿¡ ÀÌ·± ¹æ¹ýÀ» ¿ªÇÁ·Ï½Ã(reverse proxying)¶ó°í ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®ÀÇ ÀÔÀå¿¡¼ ¿ªÇÁ·Ï½Ã ¼¹ö°¡ ¹®¼¸¦ º¸³»ÁÖ´Â °Íó·³ º¸À̹ǷΠÀÏ¹Ý ÇÁ·Ï½Ã¿Í´Â ´Ù¸£´Ù.
¾Æ·¡ ¼³Á¤¿¡¼ Ŭ¶óÀ̾ðÆ®°¡ /foo/
¿¡ ÀÖ´Â ¹®¼¸¦ ¿äûÇϸé, ¼¹ö´Â internal.example.com
ÀÇ /bar/
µð·ºÅ丮¿¡¼ ¹®¼¸¦ °¡Á®¿Í¼ ¹®¼°¡ ¸¶Ä¡ ¼¹ö¿¡ ÀÖ¾ú´ø °Íó·³ Ŭ¶óÀ̾ðÆ®¿¡°Ô º¸³½´Ù.
ProxyPass /foo/ http://internal.example.com/bar/
ProxyPassReverse /foo/ http://internal.example.com/bar/
ProxyPass
´Â ¼¹ö°¡ ÀûÀýÇÑ ¹®¼¸¦ °¡Á®¿Àµµ·Ï ¼³Á¤Çϸç, ProxyPassReverse
Áö½Ã¾î´Â internal.example.com
ÀÌ º¸³»´Â ¸®´ÙÀÌ·º¼ÇÀ» ÀçÀÛ¼ºÇÏ¿© ¸®´ÙÀÌ·º¼ÇÀÌ ÇöÀç ¼¹öÀÇ ÀûÀýÇÑ µð·ºÅ丮¸¦ °¡¸®Å°µµ·Ï ÇÑ´Ù. ±×·¯³ª ¹®¼ ¾È¿¡ ÀÖ´Â ¸µÅ©´Â ÀçÀÛ¼ºÇÏÁö ¾ÊÀ½À» ÁÖÀÇÇ϶ó. internal.example.com
¿¡ ´ëÇÑ Àý´ë¸µÅ©´Â Ŭ¶óÀ̾ðÆ®°¡ ÇÁ·Ï½Ã¼¹ö°¡ ¾Æ´Ï¶ó internal.example.com
À¸·Î Á÷Á¢ ¿äûÇÏ°Ô ÇÑ´Ù.
´õ °·ÂÇÑ Ä¡È¯ÀÌ ÇÊ¿äÇÒ¶§ mod_rewrite
ÀÇ ÀçÀÛ¼º ¿£ÁøÀÌ µµ¿òÀÌ µÈ´Ù. ÀÌ ¸ðµâÀÇ Áö½Ã¾î´Â ºê¶ó¿ìÀú Á¾·ù³ª Ŭ¶óÀ̾ðÆ®ÀÇ IP ÁÖ¼Ò µî ¿äûÀÇ Æ¯Â¡À» °¡Áö°í ¾îµð¿¡ ÀÖ´Â ³»¿ëÀ» ¼ºñ½ºÇÒÁö °áÁ¤ÇÒ ¼ö ÀÖ´Ù. ¶Ç, mod_rewrite´Â ¿äûÀ» ¾î¶»°Ô ó¸®ÇÒÁö °áÁ¤ÇϱâÀ§ÇØ ¿ÜºÎ µ¥ÀÌÅͺ£À̽º ÆÄÀÏÀ̳ª ÇÁ·Î±×·¥À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀçÀÛ¼º ¿£ÁøÀº À§¿¡¼ ´Ù·é ¼¼ Á¾·ù ´ëÀÀ, Áï, ³»ºÎ ¸®´ÙÀÌ·º¼Ç (alias), ¿ÜºÎ ¸®´ÙÀÌ·º¼Ç, ÇÁ·Ï½Ã, ¸ðµÎ¸¦ Áö¿øÇÑ´Ù. mod_rewrite¸¦ »ç¿ëÇÏ´Â ½ÇÁ¦ ¿¹´Â URL Á¦ÀÛ¼º Áöħ¼¿¡¼ ¼³¸íÇÑ´Ù.
°á±¹ ¿äûÇÑ URL¿¡ ´ëÀÀÇÏ´Â ÆÄÀÏÀ» ÆÄÀϽýºÅÛ¿¡¼ ãÁö ¸øÇÑ °æ¿ìÀÌ´Ù. ¿©·¯ °¡Áö ÀÌÀ¯°¡ ÀÖ´Ù. ¾î¶² °æ¿ì ¹®¼¸¦ ´Ù¸¥ °÷À¸·Î ¿Å°å±â ¶§¹®ÀÏ ¼ö ÀÖ´Ù. ÀÌ °æ¿ì Ŭ¶óÀ̾ðÆ®¿¡°Ô URL ¸®´ÙÀÌ·º¼ÇÀ¸·Î ÀÚ¿øÀÇ »õ·Î¿î À§Ä¡¸¦ ¾Ë·ÁÁÖ´Â ¹æ¹ýÀÌ Á¦ÀÏ ÁÁ´Ù. ±×·¯¸é ÀÚ¿øÀ» ¿Å°Üµµ ¿À·¡µÈ ºÏ¸¶Å©³ª ¸µÅ©°¡ °è¼Ó À¯È¿ÇÏ´Ù.
"File Not Found" ¿À·ùÀÇ ´Ù¸¥ ÀϹÝÀûÀÎ ¿øÀÎÀº ºê¶ó¿ìÀú¿¡ Á÷Á¢ ȤÀº HTML ¸µÅ©¿¡ URLÀÌ À߸ø ÀÔ·ÂµÈ °æ¿ìÀÌ´Ù. ¾ÆÆÄÄ¡´Â mod_speling
(¸ÂÃã¹ýÀÌ Æ²¸®Áö ¾Ê¾ÒÀ½) ¸ðµâ·Î ÀÌ¿Í °°Àº ¹®Á¦¸¦ µ½´Â´Ù. ÀÌ ¸ðµâÀ» »ç¿ëÇϸé "File Not Found" ¿À·ù°¡ ¹ß»ýÇÏ´Â °æ¿ì ºñ½ÁÇÑ ÆÄÀϸíÀ» °¡Áø ÀÚ¿øÀ» ã´Â´Ù. ¸¸¾à ¹ß°ßÇϸé mod_spelingÀº Ŭ¶óÀ̾ðÆ®¸¦ ¿Ã¹Ù¸¥ À§Ä¡·Î HTTP ¸®´ÙÀÌ·º¼ÇÇÑ´Ù. "ºñ½ÁÇÑ" ÆÄÀÏÀÌ ¿©·¯°³ ÀÖ´Ù¸é Ŭ¶óÀ̾ðÆ®¿¡°Ô ¸ñ·ÏÀ» º¸³½´Ù.
mod_spelingÀÇ Æ¯È÷ À¯¿ëÇÑ ÀåÁ¡Àº ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö¾Ê°í ÆÄÀϸíÀ» ºñ±³ÇÏ´Â ±â´ÉÀÌ´Ù. ±×·¡¼ À¯´Ð½º ÆÄÀϽýºÅÛ°ú URLÀÇ ´ë¼Ò¹®ÀÚ ¼ºÁúÀ» ¾ËÁö¸øÇÏ´Â »ç¿ëÀÚ°¡ ÀÖ´Â ½Ã½ºÅÛ¿¡ µµ¿òÀÌ µÈ´Ù. ±×·¯³ª mod_spelingÀÌ ÀÚÁÖ URLÀ» °íÃľßÇÑ´Ù¸é, "À߸øµÈ" ¿äû¶§¸¶´Ù URL ¸®´ÙÀÌ·º¼Ç°ú Ŭ¶óÀ̾ðÆ®ÀÇ »õ·Î¿î ¿äûÀÌ ÀϾ¹Ç·Î ¼¹ö¿¡ ºÎ´ãÀÌ µÈ´Ù.
ã´Â ½Ãµµ°¡ ¸ðµÎ ½ÇÆÐÇÏ¸é ¾ÆÆÄÄ¡´Â HTTP status code 404 (file not found) ¿À·ùÆäÀÌÁö¸¦ º¸³½´Ù. ÀÌ ÆäÀÌÁöÀÇ ³»¿ëÀº ErrorDocument
Áö½Ã¾î·Î Á¶ÀýÇϸç, »ç¿ëÀÚÁ¤ÀÇ ¿À·ù ÀÀ´ä°ú ´Ù±¹¾î ¼¹ö ¿À·ù¹® ¹®¼¸¦ Âü°íÇÏ¿© »ç¿ëÀÚÁ¤ÀÇÇÒ ¼ö ÀÖ´Ù.